QtGui.QSystemTrayIcon settooltip 在 debian 拉伸中不起作用

Posted

技术标签:

【中文标题】QtGui.QSystemTrayIcon settooltip 在 debian 拉伸中不起作用【英文标题】:QtGui.QSystemTrayIcon settooltip not working in debian stretch 【发布时间】:2017-01-22 17:02:27 【问题描述】:

以下代码在 debian jessie 中运行良好,但在 debian 拉伸中运行不佳。 代码在系统托盘中显示图标。在 Jessie 中,它正确显示了工具提示,但在 Debian Stretch 中,工具提示文本显示为文件名,而不是我设置的。

不确定我可以在这里进行什么样的调试,也不知道可能是什么问题。 它正在使用 Debian jessie 中的 python 2.7.9 debian 中的 python 2.7.13

#!/usr/bin/python -u

import sys
from PyQt4 import QtGui, QtCore

import signal
signal.signal(signal.SIGINT, signal.SIG_DFL)

def main():
   app = QtGui.QApplication(sys.argv)

   trayIcon = QtGui.QSystemTrayIcon(QtGui.QIcon('test.png'), app)
   menu = QtGui.QMenu()
   exitAction = menu.addAction("Exit")
   trayIcon.setContextMenu(menu)

   trayIcon.setToolTip('test tool tip')

   trayIcon.show()
   sys.exit(app.exec_())

if __name__ == '__main__':
   main()

【问题讨论】:

这方面有什么帮助吗? 【参考方案1】:

这看起来像是一个 qt4 问题。 pyqt5 + python3 解决了它。 Debian stretch 使用基于 KDE 5 (Plasma) 架构的 KDE 5。使用pyqt5将程序转换为python3解决了这个问题

#!/usr/bin/python3 -u

import sys
from PyQt5 import QtGui, QtCore,QtWidgets
from PyQt5 import Qt

import signal
signal.signal(signal.SIGINT, signal.SIG_DFL)

def main():
   app = QtWidgets.QApplication(sys.argv)

   w = QtWidgets.QWidget()
   trayIcon = QtWidgets.QSystemTrayIcon(QtGui.QIcon('test.png'), w)
   menu = QtWidgets.QMenu()
   exitAction = menu.addAction("Exit")
   trayIcon.setContextMenu(menu)

   trayIcon.setToolTip('test tool tip')

   trayIcon.show()
   sys.exit(app.exec_())

if __name__ == '__main__':
   main()

【讨论】:

以上是关于QtGui.QSystemTrayIcon settooltip 在 debian 拉伸中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

set about和set out和set aside和set back和set off和set up区别,

5.set集合

set集合关于set与set进行比较

setting安装软件中代表

Set和multiset容器

set -x 与 set +x