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
1 ответ
Решение
Это известная ошибка; см. этот отчет об ошибке.
По-видимому, это будет исправлено в следующих выпусках.