PyQt5 QSystemTrayIcon находится за пределами фактического трея

У меня есть простое приложение PyQt5, которое является просто примером и ничего не делает:

#!/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_())

После запуска показывает главное окно и иконку в трее. Но значка в трее нет в трее. Он находится в левом верхнем углу.

Как я могу это исправить? Этот код нормально работает в Windows 7, Mac OS X и Archlinux с KDE. Так что проблема скорее всего в Ubuntu DE.

Я использую последнюю версию ubuntu 14.04 amd64, python 3, PyQt5, версия Qt 5.2.1.


person Nikolai Golub    schedule 20.07.2014    source источник


Ответы (1)


Это известная ошибка; см. этот отчет об ошибке.

Судя по всему, это будет исправлено в следующих релизах.

person Nikolai Golub    schedule 28.07.2014