Меню qsystemtray не скрывается при остановке приложения - PullRequest
1 голос
/ 30 января 2012
trayiconContextMenu = QtGui.QMenu()
trayiconContextMenu.addAction("Exit")
trayicon.setContextMenu(trayiconContextMenu)

В pyqt к значку на панели задач прикреплено контекстное меню.
В конкретном сценарии выход из приложения вызывается изнутри, но в это время, если меню панели задач открывается вручную, приложение не будет закрываться.

После нажатия клавиши Esc или щелчка мышью в каком-либо другом приложении (например, когда меню в трее скрыто), выход из приложения будет вызван с ошибками.

trayiconContextMenu.hide()
/*does not work in my above case.*/
trayicon.hide()
/*hides tray icon alone but not the tray menu*/

Также для того же сценария выход из приложения работает должным образом, когда меню трея не отображается.

Помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 01 февраля 2012

QSystemTrayIcon не становится владельцем меню при его настройке, поэтому вам может потребоваться принять меры для обеспечения его правильного удаления.

Попробуйте что-то вроде этого:

trayiconContextMenu = QtGui.QMenu()
trayiconContextMenu.setAttribute(QtCore.Qt.WA_DeleteOnClose)
...
trayiconContextMenu.close()
QtGui.qApp.quit()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...