1

我刚刚开始学习 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"
4

2 回答 2

1

当您将外部文件作为图标处理时,您必须使用显式或构建它们的绝对路径,在您的情况下,我假设 .png 位于脚本旁边,因此您应该使用:

import os

CURRENT_DIRECTORY = os.path.dirname(os.path.realpath(__file__))
#  ...
icon = QIcon(os.path.join(CURRENT_DIRECTORY, "fb.png"))
# ...
于 2020-07-30T01:55:05.577 回答
0

也许尝试tray.show()而不是tray.setVisible(True).

于 2020-07-30T01:32:05.997 回答