python通知 设置系统托盘图标

python QSystemTrayIcon.setIcon

QSystemTrayIcon.setIcon 是一个用于设置系统托盘图标的方法,它是 PyQt5 或 PySide 中的 Qt 库的一部分。这个方法让你可以设置系统托盘图标,它可以接受一个 QIcon 对象作为参数。

以下是一些使用 QSystemTrayIcon.setIcon 的方法:

 

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QSystemTrayIcon, QMenu
from PyQt5.QtGui import QIcon
 
class TrayIconExample(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()
 
    def initUI(self):
        # 创建一个系统托盘图标
        self.tray_icon = QSystemTrayIcon(self)
        self.tray_icon.setIcon(QIcon(r"C:\Users\Administrator\Desktop\flask\2747.png"))  # 设置气泡提示的图标,你需要一个图标文件
        self.tray_icon.setToolTip('My App')  # 设置气泡提示的文本
 
        # 创建一个弹出菜单
        menu = QMenu()
        exitAction = menu.addAction("Exit")
        exitAction.triggered.connect(self.exit)
 
        # 将弹出菜单与系统托盘图标关联
        self.tray_icon.setContextMenu(menu)
 
        # 将应用程序隐藏到系统托盘
        self.hide()
        self.tray_icon.show()
 
        # 连接气泡提示信号
        self.tray_icon.activated.connect(self.onTrayIconActivated)
 
    def onTrayIconActivated(self, reason):
        if reason == QSystemTrayIcon.Trigger:
            # 当用户单击气泡提示时,执行一些操作
            print("Notification clicked!")
 
    def exit(self):
        # 退出应用程序
        sys.exit()
 
if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = TrayIconExample()
    sys.exit(app.exec_())
    
  

 

  1. 直接传入一个 QIcon 对象:

 
 
from PyQt5.QtWidgets import QSystemTrayIcon, QApplication
from PyQt5.QtGui import QIcon
 
app = QApplication([])
 
trayIcon = QSystemTrayIcon()
icon = QIcon('path_to_your_icon.png') # 替换为你的图标路径
trayIcon.setIcon(icon)
trayIcon.show()
 
app.exec_()
  1. 使用 QIcon 的 fromTheme 方法来加载主题图标:

 
 
from PyQt5.QtWidgets import QSystemTrayIcon, QApplication
from PyQt5.QtGui import QIcon
 
app = QApplication([])
 
trayIcon = QSystemTrayIcon()
icon = QIcon.fromTheme('edit-copy') # 替换为你想要的图标名称
trayIcon.setIcon(icon)
trayIcon.show()
 
app.exec_()
  1. 使用 QIcon 的 addPixmap 方法来加载不同分辨率的图标:

 
 
from PyQt5.QtWidgets import QSystemTrayIcon, QApplication
from PyQt5.QtGui import QIcon
 
app = QApplication([])
 
trayIcon = QSystemTrayIcon()
icon = QIcon()
icon.addPixmap(QPixmap("lowres.png"), QIcon.Normal, QIcon.Off)
icon.addPixmap(QPixmap("hires.png"), QIcon.Normal, QIcon.On)
trayIcon.setIcon(icon)
trayIcon.show()
 
app.exec_()

注意:在使用 QSystemTrayIcon.setIcon 方法时,你需要调用 trayIcon.show() 方法来显示图标。如果你想要图标在点击时有一些反馈,你可以连接信号槽到 QSystemTrayIcon.activated

例如:

 
 
from PyQt5.QtWidgets import QSystemTrayIcon, QApplication
from PyQt5.QtGui import QIcon
 
app = QApplication([])
 
def onActivated(reason):
print("Tray icon activated: ", reason)
 
trayIcon = QSystemTrayIcon()
icon = QIcon('path_to_your_icon.png') # 替换为你的图标路径
trayIcon.setIcon(icon)
trayIcon.activated.connect(onActivated)
trayIcon.show()
 
app.exec_()

posted on 2024-06-14 09:15  andy_1  阅读(6)  评论(0编辑  收藏  举报

导航