我的应用程序有一个可以在左键单击时QSystemTrayIcon
切换可见性。QMainWindow
def tray_icon_activated_cb(reason):
if reason == QtWidgets.QSystemTrayIcon.Trigger:
self.main_window.setVisible(not self.main_window.isVisible())
self.activated.connect(tray_icon_activated_cb)
它可以正常工作,除非我在QMainWindow
可见时切换虚拟桌面。
例如:
On virtual desktop 1, window hidden
Click
On virtual desktop 1, window visible
Click
On virtual desktop 1, window hidden
Change desktop
On virtual desktop 2, window hidden
Click
On virtual desktop 2, window visible
Click
On virtual desktop 2, window hidden
Change desktop
On virtual desktop 1, window hidden
Click
On virtual desktop 1, window visible
Change desktop
On virtual desktop 2, window hidden
Click
On virtual desktop 2, window hidden <- wrong
Change desktop
On virtual desktop 1, window hidden
Click
On virtual desktop 1, window hidden <-- still wrong
我只能通过重新启动应用程序来恢复 QMainWindow。
我print
在上面的方法中添加了 s 并且可以检查我们是否通过
self.main_window.setVisible(not self.main_window.isVisible())
因为self.main_window.isVisible()
返回True
,False
或者。
我只是不知道在哪里可以QMainWindow
看到。
Debian 拉伸,伴侣 1.16.2,Python 3.5.3。我可以用 PyQt4 和 PyQt5 重现。