class SystemTrayIcon(QSystemTrayIcon): def __init__(self, icon, parent=None): QSystemTrayIcon.__init__(self, icon, parent) self.setToolTip("usb-resetter 1.0 (Left\Right-Click)") self.parent = parent self.activated.connect(self.toggleP) menu = QMenu(parent) self.fmenu = QMenu("Fast reset", parent) self.fmenu.setToolTip("List of filtered devices to fast reset") aboutAction = QAction("About", self) aboutAction.triggered.connect(parent.show_about) quitAction = QAction("Exit", self) quitAction.triggered.connect(parent.exitEvent) menu.addMenu(self.fmenu) menu.addSeparator() menu.addAction(aboutAction) menu.addAction(quitAction) self.setContextMenu(menu) def toggleP(self, ar): actions = [QSystemTrayIcon.ActivationReason.Context, QSystemTrayIcon.ActivationReason.Trigger] if ar in actions: self.set_Freset() else: if self.parent.Hidden: self.parent.show() self.parent.Hidden = None else: self.parent.hide() self.parent.Hidden = True def set_Freset(self): self.fmenu.clear() for l in self.parent.get_list(): ac = QAction(l, self) def actdo(t): if resetit(t): self.parent.statusbar.setStyleSheet(self.parent.s_norm) self.parent.statusbar.showMessage( "# Done: usb device got reset") return True self.parent.statusbar.setStyleSheet(self.parent.s_error) ac.triggered.connect(partial(actdo, l)) self.fmenu.addAction(ac)