标签: qsystemtrayicon

从托盘图标弹出窗口,当窗口关闭时不会关闭程序

设置一个从托盘图标启动不同应用程序的工具包,我需要能够打开配置窗口,然后在不关闭整个应用程序的情况下关闭它。

import sys
from PyQt5.QtWidgets import QSystemTrayIcon, QApplication, QMenu, qApp, QMainWindow, QPushButton, QLabel, QLineEdit
from PyQt5.QtGui import QIcon
from PyQt5 import QtCore

class autoparse():
    def __init__(self):
        self.main()

    def main(self):
        app = QApplication(sys.argv)
        self.trayIcon = QSystemTrayIcon(QIcon("icons\icon-windowed.ico"), app)
        self.menu = QMenu()
        self.trayIcon.setContextMenu(self.menu)
        self.autopconfig = self.menu.addAction('Config')
        self.autopconfig.triggered.connect(self.configwindow)
        exitaction = self.menu.addAction("Exit")
        exitaction.triggered.connect(qApp.quit)

        self.trayIcon.show()
        sys.exit(app.exec_())

    def configwindow(self):
        try:
            self.config = QMainWindow()
            self.config.setWindowTitle('Configuration')
            self.config.setGeometry(300, 300, 640, 480)

            self.lbl = QLabel('Directory: ', self.config)
            self.lbl.setGeometry(QtCore.QRect(10, 20, 200, 20))
            self.pathsel = QLineEdit(self.config)
            self.pathsel.setMaxLength(250)
            self.pathsel.setText('path here')
            # self.pathsel.selectAll()
            self.pathsel.setGeometry(QtCore.QRect(10, 50, …
Run Code Online (Sandbox Code Playgroud)

python windows pyqt pyqt5 qsystemtrayicon

3
推荐指数
1
解决办法
1137
查看次数

QSystemTrayIcon.setIcon 无法更改托盘图标

import sys
from PyQt5.QtWidgets import QSystemTrayIcon, QApplication, QMenu
from PyQt5.QtGui import QIcon

class autoparse():
    def __init__(self):

       self.main()

    def main(self):
        app = QApplication(sys.argv)

        self.trayIcon = QSystemTrayIcon(QIcon("icons\icon-windowed.ico"), app)
        self.menu = QMenu()
        self.autopconfig = self.menu.addAction('Config')
        self.autopconfig.triggered.connect(self.swapicon)
        self.trayIcon.setContextMenu(self.menu)

        self.trayIcon.show()
        sys.exit(app.exec_())
    def swapicon(self):
        QSystemTrayIcon.setIcon(QIcon("icons\python.ico"))

test1 = autoparse()
Run Code Online (Sandbox Code Playgroud)

我可以让初始图标设置得很好,我可以通过为应用程序创建 2 个图标然后执行 self.trayIcon.hide() 和 self.newicon.show() 来解决这个问题,但我不认为这是正确的方法。

Pycharm 显示一条通知,上面写着“预期的 QSystemTrayIcon,获得了 QIcon”,但如果我QIcon与之交换QSystemTrayIcon,则它会说Qicon丢失。SOOOOOO 我将其更改为QSystemTrayIcon(QIcon("icons\python.ico"),但它仍然显示QIcon未填充。问题检测似乎一直在循环。

当我运行 swapicon 函数时,按原样运行代码会给出“setIcon (self, QIcon): unbound 方法的第一个参数必须具有类型 'QSystemTrayIcon'”。如果我删除 QIcon,使其只是 setIcon(文件),那么我会得到“setIcon(self,QIcon):没有足够的参数”

python pyqt pyqt5 qsystemtrayicon

3
推荐指数
1
解决办法
2576
查看次数

QSystemTrayIcon 不显示

使用 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_())
Run Code Online (Sandbox Code Playgroud)

显示了消息(“hoge”,“moge”),但我在任何地方都找不到该图标......正如其他帖子所说,在左上角都找不到。

python ubuntu pyqt python-3.x qsystemtrayicon

0
推荐指数
1
解决办法
2749
查看次数

标签 统计

pyqt ×3

python ×3

qsystemtrayicon ×3

pyqt5 ×2

python-3.x ×1

ubuntu ×1

windows ×1