我在macOS的系统托盘中开发了一个带有图标的应用程序,但当我用pyinstaller生成可执行文件并启动应用程序时,菜单在系统托盘中很好,但我看不到图标,好像我什么都没有。
我使用PySide6 6.4.0.1、Python 3.10.7和pyinstaller 5.6.1。
app = QApplication()
main_window = MainWindow()
if not QSystemTrayIcon.isSystemTrayAvailable():
QMessageBox.critical(None, 'System Tray', 'System tray was not detected!')
sys.exit(1)
app.setQuitOnLastWindowClosed(False)
icon = QIcon('ressources/icon.jpg')
tray = QSystemTrayIcon()
tray.setIcon(icon)
tray.setVisible(True)
menu = QMenu()
action_hello = QAction('Hello World')
action_hello.triggered.connect(main_window.say_hello)
menu.addAction(action_hello)
action_exit = QAction('Exit')
action_exit.triggered.connect(app.exit)
menu.addAction(action_exit)
tray.setToolTip('Hello World app')
tray.setContextMenu(menu)
tray.show()
# Launch the app
app.exec()
1条答案
按热度按时间oxcyiej71#
我终于成功了。我已经找到了解决方案here的一部分!它是必要的添加图标在一个资源文件特定的Qt。Here是一个教程来做这件事。我已经创建了一个文件 icon.qrc:
然后,我在cmd中运行以下命令:
pyside6-rcc icons.qrc -o rc_icons.py
。之后,我导入了在 hello.py 中创建的新文件 rc_icons.py:import rc_icons.py
。最后,我创建了如下图标:icon = QIcon(QPixmap(":/ressources/icon.ico"))
现在,当我运行pyinstaller命令和可执行文件时,我在系统托盘上看到了图标。