以下代码在debian jessie中工作良好,但在debian Stretch中却行不通。代码在系统任务栏中显示图标。在Jessie中,它正确显示了工具提示,但是在Debian Stretch中,工具提示文本显示为文件名,而不是我设置的名称。
不知道我可以在这里进行哪种调试,也不知道可能是什么问题。它在Debian Jessie中使用python 2.7.9在Debian Stretch中使用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()
这看起来像一个qt4问题。pyqt5 + python3解决了它。Debian Stretch使用基于KDE 5(等离子)架构的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()
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句