Как установить обычный круг в качестве иконки трея 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_())


