PyQt5 QSystemTrayIcon在实际托盘之外

PyQt5 QSystemTrayIcon在实际托盘之外,qt,ubuntu,pyqt,qt5,pyqt5,Qt,Ubuntu,Pyqt,Qt5,Pyqt5,我有一个简单的PyQt5应用程序,它只是一个示例,不做任何事情: 启动后,将显示主窗口和托盘图标。但托盘图标不在托盘中。它在左上角 我该如何解决这个问题?此代码通常在Windows7、MacOSX和带有KDE的Archlinux上工作。所以这个问题可能在ubuntude中 我使用最新的ubuntu 14.04 amd64、python 3、PyQt5,Qt版本是5.2.1这是已知的bug 显然,它将在下一版本中修复 #!/usr/bin/env python # -*- encoding: u

我有一个简单的PyQt5应用程序,它只是一个示例,不做任何事情:

启动后,将显示主窗口和托盘图标。但托盘图标不在托盘中。它在左上角

我该如何解决这个问题?此代码通常在Windows7、MacOSX和带有KDE的Archlinux上工作。所以这个问题可能在ubuntude中

我使用最新的ubuntu 14.04 amd64、python 3、PyQt5,Qt版本是5.2.1

这是已知的bug

显然,它将在下一版本中修复

#!/usr/bin/env python
# -*- encoding: utf-8 -*-
import sys
from PyQt5 import QtWidgets, QtCore, QtGui 


class SystemTrayIcon(QtWidgets.QSystemTrayIcon):

    def __init__(self, icon, parent=None):
        super(SystemTrayIcon, self).__init__(icon, parent)
        menu = QtWidgets.QMenu(parent)
        exitAction = menu.addAction("Exit")
        exitAction.triggered.connect(parent.close)
        self.setContextMenu(menu)


class MainWindow(QtWidgets.QWidget):
    def __init__(self):
        super(MainWindow, self).__init__()         
        self.initUI()

    def initUI(self):      
        self.setGeometry(300, 300, 250, 150)
        self.setWindowTitle('Icon')
        self.tray_icon = SystemTrayIcon(QtGui.QIcon('test.ico'), self)
        self.tray_icon.show()
        self.show()


if __name__ == '__main__':
    app = QtWidgets.QApplication([])
    w = MainWindow()
    sys.exit(app.exec_())