我想知道如何在 python/Pyside2 中做:
创建一个带有自定义图标的 QSystemTrayIcon,其中:
如果我单击左键,我会执行自定义操作(只需打印“左键单击”)。不应该显示菜单...
如果我单击它的右键,则会出现一个上下文菜单,上面有一个退出操作,只是为了关闭程序。
在MacOS上,可能不在 win 或 linux 中,菜单只是在鼠标按下时打开......这就是为什么需要左右单击差异,否则这两个操作都将通过左右单击来完成。请参阅此处的注释:在 macOS 上...因为菜单在鼠标按下时打开
我需要帮助只是在以下代码中实现左右单击差异:
from PySide2 import QtWidgets
import sys
class SystrayLauncher(object):
def __init__(self):
w = QtWidgets.QWidget() #just to get the style(), haven't seen other way
icon = w.style().standardIcon(QtWidgets.QStyle.SP_MessageBoxInformation)
self.tray = QtWidgets.QSystemTrayIcon()
self.tray.setIcon(icon)
self.tray.setVisible(True)
self.tray.activated.connect(self.customAction)
# I JUST WANT TO SEE THE MENU WHEN RIGHT CLICK...
self.trayIconMenu = QtWidgets.QMenu()
self.quitAction = QtWidgets.QAction("&Quit", None, triggered=QtWidgets.QApplication.instance().quit)
self.trayIconMenu.addAction(self.quitAction)
self.tray.setContextMenu(self.trayIconMenu)
# JUST WANNA USE THE ACTION WITH LEFT CLICK
def customAction(self, signal):
print "left click pressed"
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
app.setQuitOnLastWindowClosed(False)
sl = SystrayLauncher()
sys.exit(app.exec_())
任何人都可以帮助我吗?