PyQt5 시스템 트레이 아이콘 및 메시지 알림
공식 홈페이지 자료와 다른 개인 블로그를 참고해서 제가 이런 예를 만들었어요.
class window(QWidget):
def __init__(self, parent=None):
super(window, self).__init__(parent)
ti = TrayIcon(self)
ti.show()
우선 빈 창을 만들어서 테스트합니다. 트레이 Icon은 QSystemTray Icon에서 시스템 트레이 아이콘을 표시하는 클래스를 계승합니다.
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
class TrayIcon(QSystemTrayIcon):
def __init__(self, parent=None):
super(TrayIcon, self).__init__(parent)
self.showMenu()
self.other()
def showMenu(self):
" , "
self.menu = QMenu()
self.menu1 = QMenu()
self.showAction1 = QAction(" 1", self, triggered=self.showM)
self.showAction2 = QAction(" 2", self,triggered=self.showM)
self.quitAction = QAction(" ", self, triggered=self.quit)
self.menu1.addAction(self.showAction1)
self.menu1.addAction(self.showAction2)
self.menu.addMenu(self.menu1, )
self.menu.addAction(self.showAction1)
self.menu.addAction(self.showAction2)
self.menu.addAction(self.quitAction)
self.menu1.setTitle(" ")
self.setContextMenu(self.menu)
def other(self):
self.activated.connect(self.iconClied)
#
self.messageClicked.connect(self.mClied)
#
self.setIcon(QIcon("ico.ico"))
self.icon = self.MessageIcon()
#
def iconClied(self, reason):
" icon ,1 ,2 ,3 ,4 "
if reason == 2 or reason == 3:
pw = self.parent()
if pw.isVisible():
pw.hide()
else:
pw.show()
print(reason)
def mClied(self):
self.showMessage(" ", " ", self.icon)
def showM(self):
self.showMessage(" ", " ", self.icon)
def quit(self):
" , "
self.setVisible(False)
self.parent().exit()
qApp.quit()
sys.exit()
class window(QWidget):
def __init__(self, parent=None):
super(window, self).__init__(parent)
ti = TrayIcon(self)
ti.show()
if __name__ == "__main__":
import sys
app = QApplication(sys.argv)
w = window()
w.show()
sys.exit(app.exec_())
시스템 트레이가 잘 캡처되지 않아서 캡처하지 않겠습니다.참고: qt 홈페이지 Perchouli의 블로그 주취동파의 블로그
전재 대상:https://www.cnblogs.com/jikeboy/p/6526274.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.