q系统托盘菜单在应用停止时未隐藏
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
QSystemTrayIcon
这个东西在你设置菜单的时候,并不会自动管理这个菜单的生命周期,所以你可能需要采取一些措施来确保它能被正确删除。
你可以试试下面的做法:
trayiconContextMenu = QtGui.QMenu()
trayiconContextMenu.setAttribute(QtCore.Qt.WA_DeleteOnClose)
...
trayiconContextMenu.close()
QtGui.qApp.quit()