Код помогает, поэтому вот что я написал для приложения, за исключением closeEvent вместо события минимизации.
Примечания:
"closeEvent (event)" - переопределенное событие Qt, поэтому его нужно поместить в класс, реализующий окно, которое вы хотите скрыть.
"okayToClose ()" - это функция, которую вы, возможно, захотите реализовать (или логический флаг, который вы можете захотеть сохранить), поскольку иногда вы действительно хотите выйти из приложения, а не сворачивать в systray.
Существует также пример того, как снова показать () ваше окно.
def __init__(self):
traySignal = "activated(QSystemTrayIcon::ActivationReason)"
QtCore.QObject.connect(self.trayIcon, QtCore.SIGNAL(traySignal), self.__icon_activated)
def closeEvent(self, event):
if self.okayToClose():
#user asked for exit
self.trayIcon.hide()
event.accept()
else:
#"minimize"
self.hide()
self.trayIcon.show() #thanks @mojo
event.ignore()
def __icon_activated(self, reason):
if reason == QtGui.QSystemTrayIcon.DoubleClick:
self.show()