尽管 python 代码正在执行且没有任何错误,但为什么图标没有显示在系统托盘中?
Why the icon doesn't display in System Tray although the python code is executing without any error?
我刚刚开始学习 python 并尝试创建系统托盘图标。该程序正在执行,没有任何错误,但没有显示任何图标。
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
app = QApplication([])
app.setQuitOnLastWindowClosed(False)
# Adding an icon
icon = QIcon("fb.png")
# Adding item on the menu bar
tray = QSystemTrayIcon()
tray.setIcon(icon)
tray.setVisible(True)
# Creating the options
menu = QMenu()
option1 = QAction("Option1")
option2 = QAction("Option2")
menu.addAction(option1)
menu.addAction(option2)
# To quit the app
quit = QAction("Quit")
quit.triggered.connect(app.quit)
menu.addAction(quit)
# Adding options to the System Tray
tray.setContextMenu(menu)
app.exec_()
此代码在 VSCode
中显示以下输出
[Running] python -u "e:\python\systray\systray.py"
也许可以尝试 tray.show()
而不是 tray.setVisible(True)
。
当您将外部文件作为图标处理时,您必须显式使用绝对路径或构建它们,在您的情况下,我假设 .png 位于脚本旁边,因此您应该使用:
import os
CURRENT_DIRECTORY = os.path.dirname(os.path.realpath(__file__))
# ...
icon = QIcon(os.path.join(CURRENT_DIRECTORY, "fb.png"))
# ...
我刚刚开始学习 python 并尝试创建系统托盘图标。该程序正在执行,没有任何错误,但没有显示任何图标。
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
app = QApplication([])
app.setQuitOnLastWindowClosed(False)
# Adding an icon
icon = QIcon("fb.png")
# Adding item on the menu bar
tray = QSystemTrayIcon()
tray.setIcon(icon)
tray.setVisible(True)
# Creating the options
menu = QMenu()
option1 = QAction("Option1")
option2 = QAction("Option2")
menu.addAction(option1)
menu.addAction(option2)
# To quit the app
quit = QAction("Quit")
quit.triggered.connect(app.quit)
menu.addAction(quit)
# Adding options to the System Tray
tray.setContextMenu(menu)
app.exec_()
此代码在 VSCode
中显示以下输出[Running] python -u "e:\python\systray\systray.py"
也许可以尝试 tray.show()
而不是 tray.setVisible(True)
。
当您将外部文件作为图标处理时,您必须显式使用绝对路径或构建它们,在您的情况下,我假设 .png 位于脚本旁边,因此您应该使用:
import os
CURRENT_DIRECTORY = os.path.dirname(os.path.realpath(__file__))
# ...
icon = QIcon(os.path.join(CURRENT_DIRECTORY, "fb.png"))
# ...