1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
|
from PyQt5 import (QtWidgets, QtGui)
import Model
class SystemTrayIcon(QtWidgets.QSystemTrayIcon):
""" Permet de mettre l'application dans la barre des taches """
_model = Model.Model()
def __init__(self, app, qicone, tooltip="", parent=None):
super(SystemTrayIcon, self).__init__(qicone, app)
self.app = app
self.parent = parent
# ajoute une bulle d'information quand la souris est sur l'icône tray
if tooltip != "":
self.setToolTip(self._model.app_tooltip)
# initialise le menu
self.initmenu()
#
def initmenu(self):
# crée le menu
menu = QtWidgets.QMenu(self.parent)
ouvrirPopupIcon = QtGui.QIcon(self._model.app_icone) # CELLE-CI S'AFFICHE !!
ouvrirPopupAction = QtWidgets.QAction(ouvrirPopupIcon, '&Ouvrir Alerte', self)
ouvrirPopupAction.triggered.connect(self.alerte)
menu.addAction(ouvrirPopupAction)
menu.addSeparator()
# ferme la fenêtre et quitte le programme:
# l'icône de l'item "Quitter" du menu sera une simple croix rouge
quitterIcon = QtGui.QIcon.fromTheme("application-exit", QtGui.QIcon(self._model.quitter_icone))
quitterAction = QtWidgets.QAction(quitterIcon, '&Quitter', self)
quitterAction.triggered.connect(self.quitter)
menu.addAction(quitterAction)
self.setContextMenu(menu)
def alerte(self):
""" Ouvre une fenetre de type Alerte"""
pass
def quitter(self):
"""permet de quitter: ferme le programme ainsi que le systemtray"""
reponse = QtWidgets.QMessageBox.question(None,
"Confirmez!",
"Voulez-vous vraiment quitter?",
QtWidgets.QMessageBox.Yes,
QtWidgets.QMessageBox.No)
if reponse == QtWidgets.QMessageBox.Yes:
# ferme la fenêtre si elle est encore ouverte
try:
self.fen.close()
except Exception:
pass
# ferme l'application et arrête l'exécution
self.app.quit() |
Partager