gpt4 book ai didi

python - QSystemTrayIcon 判断它是否被点击或处于焦点

转载 作者:太空宇宙 更新时间:2023-11-03 18:25:01 26 4
gpt4 key购买 nike

使用 QSystemTrayIcon 对象,我如何确定它当前是否被单击?另外,我如何确定用户何时单击了托盘图标及其关联菜单?我认为这涉及安装事件过滤器?

我想显示 UI,但我只想在托盘图标当前未激活时显示它,这意味着其关联的托盘图标未获得焦点。因此,我可以使用 activated 信号来确定何时有人点击了它,但如何确定它何时不再处于事件状态?

我正在使用 python 2.7.3 和 PyQt5

最佳答案

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.DoubleClickQSystemTrayIcon.ContextQSystemTrayIcon.MiddleClick,如果您需要这些事件。

关于python - QSystemTrayIcon 判断它是否被点击或处于焦点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23375676/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com