Как установить обычный круг в качестве иконки трея PyQt5 Python

Нужно создать круг зеленого цвета и задать его как иконку трея программы PyQt5 Python, чтобы данный круг рисовался конкретно модулем PyQt5, т.к. слишком запарно выкладывать .png файлы.
Была идея как то использовать QRect:

self.tray_icon = QSystemTrayIcon(self)
self.tray_icon.setIcon(QIcon(QRect(10, 10, 10, 10)))

но похоже я так и не понял как его использовать.


Ответы (1 шт):

Автор решения: S. Nick

Как вариант:

import sys
from PyQt5.Qt import *


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

if __name__ == '__main__':
    app = QApplication(sys.argv)

    # Создание menu
    menu = QMenu()
    checkAction = menu.addAction("Проверь сейчас")
    checkAction.triggered.connect(run_something)
    quitAction = menu.addAction("Quit")
    quitAction.triggered.connect(qApp.quit)

    # Создание icon
    pixmap = QPixmap(30, 30)
    pixmap.fill(Qt.transparent)
    painter = QPainter(pixmap)
    painter.setPen(QPen(Qt.green, 4, Qt.SolidLine))
    painter.setBrush(QBrush(Qt.green, Qt.SolidPattern))
    painter.drawEllipse(pixmap.rect().adjusted(4, 4, -4, -4))
    painter.end()    
    icon = QIcon()
    icon.addPixmap(pixmap)        

    # Создание tray
    trayIcon = QSystemTrayIcon(icon, app)
    trayIcon.setContextMenu(menu)

    # Отображение tray
    trayIcon.show()
    trayIcon.setToolTip("Hello QSystemTrayIcon!")
    trayIcon.showMessage("Title", "message")

    sys.exit(app.exec_())

введите сюда описание изображения введите сюда описание изображения введите сюда описание изображения

→ Ссылка