gpt4 book ai didi

python - QSystemTrayIcon 未显示

转载 作者:行者123 更新时间:2023-12-04 18:55:22 24 4
gpt4 key购买 nike

使用 Kubuntu 18.04 (qt5 5.9.5)、Python 3.6。我无法让此代码显示托盘图标;显示了 Dropbox 等其他图标,但这不是:

import sys

from PyQt5.QtWidgets import QApplication, QMenu, QSystemTrayIcon, qApp, QMessageBox
from PyQt5.QtGui import QIcon


def run_something():
print("Running something...")


if __name__ == '__main__':

print("Creating application...")
app = QApplication(sys.argv)

print("Creating menu...")
menu = QMenu()
checkAction = menu.addAction("Check Now")
checkAction.triggered.connect(run_something)
quitAction = menu.addAction("Quit")
quitAction.triggered.connect(qApp.quit)

print("Creating icon...")
icon = QIcon.fromTheme("system-help")

print("Creating tray...")
trayIcon = QSystemTrayIcon(icon, app)
trayIcon.setContextMenu(menu)

print("Showing tray...")
trayIcon.show()
trayIcon.setToolTip("unko!")
trayIcon.showMessage("hoge", "moge")

print("Running application...")
sys.exit(app.exec_())

显示消息(“hoge”,“moge”),但我在任何地方都找不到图标...在左上角也没有,如 other post说。

最佳答案

不知道为什么,但是这段代码有效,唱 PySide2 (基本上与上面的代码相同......):

import logging
import sys

from PySide2.QtGui import QIcon
from PySide2.QtWidgets import QSystemTrayIcon, QMenu, QApplication, QAction, QMessageBox


def run_something():
print("Running something...")


def show_message():
msg = QMessageBox()
msg.setIcon(QMessageBox.Information)

msg.setWindowTitle("MessageBox demo")
msg.setText("This is a message box")

msg.setInformativeText("This is additional information")
msg.setDetailedText("The details are as follows:")
msg.setStandardButtons(QMessageBox.Ok | QMessageBox.Cancel)
msg.exec_()


def show_tray_message(tray: QSystemTrayIcon):
tray.showMessage("Hoooo", "Message from tray")


if __name__ == '__main__':

app = QApplication([])
app.setQuitOnLastWindowClosed(False)

tray = QSystemTrayIcon(QIcon("acorn.png"), app)
menu = QMenu()

action_test = QAction("Show a message box")
action_test.triggered.connect(show_message)
menu.addAction(action_test)

action_tray_message = QAction("Show a message from tray")
action_tray_message.triggered.connect(lambda: show_tray_message(tray))
menu.addAction(action_tray_message)

action_exit = QAction("Exit")
action_exit.triggered.connect(app.exit)
menu.addAction(action_exit)

tray.setContextMenu(menu)
tray.setToolTip("Tool tip")
tray.show()

sys.exit(app.exec_())

关于python - QSystemTrayIcon 未显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53438605/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com