注意:同级目录下必须有一张test.png图片,系统托盘菜单才能显示
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
class TrayIcon(QSystemTrayIcon):
def __init__(self, parent=None):
super(TrayIcon, self).__init__(parent)
self.createMenu()
def createMenu(self):
self.menu = QMenu()
self.showAction1 = QAction("启动", self, triggered=self.showMsg)
self.showAction2 = QAction("设置", self,triggered=self.showMsg)
self.quitAction = QAction("退出", self, triggered=self.quit)
self.menu.addAction(self.showAction1)
self.menu.addAction(self.showAction2)
self.menu.addAction(self.quitAction)
self.setContextMenu(self.menu)
#设置图标
self.setIcon(QIcon("test.png"))
self.icon = self.MessageIcon()
#把鼠标点击图标的信号和槽连接
self.activated.connect(self.onIconClicked)
#鼠标点击icon传递的信号会带有一个整形的值,1是表示单击右键,2是双击,3是单击左键,4是用鼠标中键点击
def onIconClicked(self, reason):
if reason == 2 or reason == 3:
self.showMessage("Message", "skr at here", self.icon)
def showMsg(self):
self.showMessage("Message", "skr at here", self.icon)
def quit(self):
qApp.quit()
sys.exit()
if __name__ == "__main__":
app = QApplication(sys.argv)
ti = TrayIcon()
ti.show()
sys.exit(app.exec_())