使用QSystemTrayIcon
对象,如何确定当前是否单击了它?另外,如何确定用户何时单击托盘图标及其相关菜单?我认为它涉及安装事件过滤器?
我想要显示的UI,但我只想在托盘图标当前未激活时显示,这意味着其关联的托盘图标未对焦。所以我可以使用activated
信号来确定有人点击它的时间,但我如何确定它何时不再有效?
我正在使用python 2.7.3和PyQt5
答案 0 :(得分:1)
QSystemTrayIcon
中有一个名为activated
的信号将一个理由传递给它的连接插槽。我为你创建了一个简单的例子:
from PyQt4 import QtGui
import sys
class Window(QtGui.QMainWindow):
def __init__(self, parent=None):
super(Window, self).__init__(parent)
icon = QtGui.QSystemTrayIcon(self)
icon.setIcon(QtGui.QIcon(r"path/to/icon.png"))
icon.show()
icon.activated.connect(self.systemIcon)
def systemIcon(self, reason):
if reason == QtGui.QSystemTrayIcon.Trigger:
print 'Clicked'
if __name__ == "__main__":
application = QtGui.QApplication(sys.argv)
win = Window()
win.show()
sys.exit(application.exec_())
如果您需要这些活动,可以将QSystemTrayIcon.Trigger
更改为QSystemTrayIcon.DoubleClick
,QSystemTrayIcon.Context
,QSystemTrayIcon.MiddleClick
。