尽管 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"))
# ...