def __init__(self, executable, iconPath, parent=None): super(GuiApplicationLinux, self).__init__(iconPath) self.eventLoop = 'qt' self.app = QApplication( sys.argv) # this should be done before anything else self.executable = executable if QIcon.hasThemeIcon(iconPath): icon = QIcon.fromTheme(iconPath) else: icon = QIcon(iconPath) self.statusIcon = QSystemTrayIcon(icon, parent) self.menu = QMenu(parent) exitAction = self.menu.addAction("Exit") exitAction.triggered.connect(self.quit) self.statusIcon.setContextMenu(self.menu) def activate(reason): if reason == QSystemTrayIcon.Trigger: return self.launchExecutable() QObject.connect( self.statusIcon, SIGNAL("activated(QSystemTrayIcon::ActivationReason)"), activate) self.statusIcon.show()
def createTray(): #托盘 AppProperty.TrayIcon=QSystemTrayIcon(AppProperty.AppIcon,AppProperty.MainWin) AppProperty.TrayIcon.activated.connect(trayClick) AppProperty.TrayIcon.setToolTip("QPA") AppProperty.TrayIcon.setContextMenu(createTrayMenu(AppProperty.TrayIcon)) AppProperty.TrayIcon.show()
def setupSysTray(self): settings = Settings() settings.beginGroup(settings.keys.main) if settings.value('useSystemTrayIcon', QVariant(1)).toInt()[0]: icon = self.windowIcon() try: trayIcon = self.trayIcon except (AttributeError, ): self.trayIcon = trayIcon = QSystemTrayIcon(self) self.trayMenu = trayMenu = QMenu() trayIcon.setIcon(icon) trayMenu.addAction(icon, applicationName()) trayMenu.addSeparator() for action in self.menuFile.actions(): trayMenu.addAction(action) trayIcon.setContextMenu(trayMenu) self.connect(trayIcon, Signals.trayIconActivated, self.on_trayIcon_activated) trayIcon.show() else: try: trayIcon = self.trayIcon except (AttributeError, ): pass else: trayIcon.hide()
def show(main_window): """Show a system tray icon with a small icon.""" _fix_unity_systray() icon = QIcon(multiplatform.get_path("encuentro/logos/icon-192.png")) sti = QSystemTrayIcon(icon, main_window) if not sti.isSystemTrayAvailable(): logger.warning("System tray not available.") return def showhide(_): """Show or hide the main window.""" if main_window.isVisible(): main_window.hide() else: main_window.show() _menu = QMenu(main_window) _act = _menu.addAction("Mostrar/Ocultar") _act.triggered.connect(showhide) _act = _menu.addAction("Acerca de") _act.triggered.connect(main_window.open_about_dialog) _act = _menu.addAction("Salir") _act.triggered.connect(main_window.on_close) sti.setContextMenu(_menu) sti.show()
def __init__(self, parent): icon = AppIcon.getAppIcon() if icon: self.tray = QSystemTrayIcon(icon) else: self.tray = QSystemTrayIcon() self.parent = parent self.tray.setToolTip("Droid Navi") # Menu self.menu = QMenu() self.menu.addAction("Show Connected List", partial(self.maximize)) self.menu.addAction("Options", partial(self.parent.openSettings)) self.menu.addAction("Exit", partial(self.parent.close)) self.tray.setContextMenu(self.menu) # Connect handlers self.tray.activated.connect(self.activated)
def __init__(self): self.snapshots = snapshots.Snapshots() self.config = self.snapshots.config if len(sys.argv) > 1: if not self.config.set_current_profile(sys.argv[1]): logger.warning("Failed to change Profile_ID %s" % sys.argv[1], self) self.qapp = qt4tools.create_qapplication(self.config.APP_NAME) import icon self.icon = icon self.qapp.setWindowIcon(icon.BIT_LOGO) self.status_icon = QSystemTrayIcon(icon.BIT_LOGO) #self.status_icon.actionCollection().clear() self.contextMenu = QMenu() self.menuProfileName = self.contextMenu.addAction( _('Profile: "%s"') % self.config.get_profile_name()) qt4tools.set_font_bold(self.menuProfileName) self.contextMenu.addSeparator() self.menuStatusMessage = self.contextMenu.addAction(_('Done')) self.menuProgress = self.contextMenu.addAction('') self.menuProgress.setVisible(False) self.contextMenu.addSeparator() self.startBIT = self.contextMenu.addAction(icon.BIT_LOGO, _('Start BackInTime')) QObject.connect(self.startBIT, SIGNAL('triggered()'), self.onStartBIT) self.status_icon.setContextMenu(self.contextMenu) self.pixmap = icon.BIT_LOGO.pixmap(24) self.progressBar = QProgressBar() self.progressBar.setMinimum(0) self.progressBar.setMaximum(100) self.progressBar.setValue(0) self.progressBar.setTextVisible(False) self.progressBar.resize(24, 6) self.progressBar.render(self.pixmap, sourceRegion=QRegion(0, -14, 24, 6), flags=QWidget.RenderFlags( QWidget.DrawChildren)) self.first_error = self.config.is_notify_enabled() self.popup = None self.last_message = None self.timer = QTimer() QObject.connect(self.timer, SIGNAL('timeout()'), self.update_info) self.ppid = os.getppid()
def createTrayIcon(self): """create system tray icon""" self.trayIconMenu = QMenu(self) es = self.trayIconMenu.addAction(self.configAction) self.trayIconMenu.addSeparator() ea = self.trayIconMenu.addAction(self.exitAction) self.trayIcon = QSystemTrayIcon(self) self.trayIcon.setContextMenu(self.trayIconMenu) self.trayIcon.setIcon(QIcon('icon/tray.png'))
def _create_tray_icon(self): self.tray = QSystemTrayIcon(self) self.tray.setToolTip("D2Moddin Manager") self.tray.setIcon(QIcon(SETTINGS['icon'])) traymenu = QMenu() traymenu.addAction("Restart", self.restart) traymenu.addAction("Uninstall", self.uninstall) traymenu.addAction("Preferences", UIManager().open_preferences) traymenu.addAction("Show mod list", self.show_mod_list) traymenu.addSeparator() traymenu.addAction("Exit", self.exit) self.tray.setContextMenu(traymenu) self.tray.show()
def __init__(self): QObject.__init__(self) documentsLocation = QDesktopServices.storageLocation( QDesktopServices.DocumentsLocation) self.databaseFile = os.path.join(documentsLocation, "quickpanel.db") self._settings = _Settings(self.databaseFile) self.globalKey = GlobalKey() self.quickPanel = QuickPanel(self) self.actionConfigure = QAction(QIcon(":/images/configure.png"), \ self.trUtf8("&Configure"), self) self.actionExit = QAction(QIcon(":/images/close.png"), \ self.trUtf8("&Exit"), self) self.trayIcon = QSystemTrayIcon(QIcon(":/images/angelfish.png")) self.contextMenu = QMenu() self.contextMenu.addAction(self.actionConfigure) self.contextMenu.addAction(self.actionExit) self.trayIcon.setContextMenu(self.contextMenu) self.actionConfigure.triggered.connect(self.configure) self.actionExit.triggered.connect(self.exit) self.trayIcon.activated.connect(self.onTrayIconActivated)
def __init__(self, restartCallback, connectionManager=None, messageQueue=None): QMainWindow.__init__(self) self.restartCallback = restartCallback self.connectionManager = connectionManager self.messageQueue = messageQueue self.newClientSignal.connect(self.newClientSlot) self.clientReadySignal.connect(self.clientReadySlot) self.smpRequestSignal.connect(self.smpRequestSlot) self.handleErrorSignal.connect(self.handleErrorSlot) self.sendMessageToTabSignal.connect(self.sendMessageToTab) self.chatTabs = QTabWidget(self) self.chatTabs.setTabsClosable(True) self.chatTabs.setMovable(True) self.chatTabs.tabCloseRequested.connect(self.closeTab) self.chatTabs.currentChanged.connect(self.tabChanged) self.statusBar = self.statusBar() self.systemTrayIcon = QSystemTrayIcon(self) self.systemTrayIcon.setVisible(True) self.__setMenubar() vbox = QVBoxLayout() vbox.addWidget(self.chatTabs) # Add the completeted layout to the window self.centralWidget = QWidget() self.centralWidget.setLayout(vbox) self.setCentralWidget(self.centralWidget) qtUtils.resizeWindow(self, 700, 400) qtUtils.centerWindow(self) # Title and icon self.setWindowTitle("Cryptully") self.setWindowIcon(QIcon(qtUtils.getAbsoluteImagePath('icon.png')))
def __init__(self, parent, name, icon): object.__init__(self) self._app = None self._parent = parent self._gtk_running = False self._quit_added = False self.act_indexes = [] self.sep_indexes = [] self.menu_indexes = [] if TrayEngine == "KDE": self.menu = KMenu(parent) self.menu.setTitle(name) self.tray = KStatusNotifierItem() self.tray.setAssociatedWidget(parent) self.tray.setCategory(KStatusNotifierItem.ApplicationStatus) self.tray.setContextMenu(self.menu) self.tray.setIconByPixmap(getIcon(icon)) self.tray.setTitle(name) self.tray.setToolTipTitle(" ") self.tray.setToolTipIconByPixmap(getIcon(icon)) # Double-click is managed by KDE elif TrayEngine == "AppIndicator": self.menu = Gtk.Menu() self.tray = AppIndicator.Indicator.new( name, icon, AppIndicator.IndicatorCategory.APPLICATION_STATUS) self.tray.set_menu(self.menu) # Double-click is not possible with App-Indicators elif TrayEngine == "Qt": self.menu = QMenu(parent) self.tray = QSystemTrayIcon(getIcon(icon)) self.tray.setContextMenu(self.menu) self.tray.setParent(parent) self.tray.connect( self.tray, SIGNAL("activated(QSystemTrayIcon::ActivationReason)"), self.qt_systray_clicked)
def __init__(self, parent, title, icon): QObject.__init__(self) # Setup contextual menu if kde: self.menu = KMenu(parent) self.tray = KStatusNotifierItem(parent) self.tray.setStatus(KStatusNotifierItem.Passive) self.tray.setCategory(KStatusNotifierItem.ApplicationStatus) self.tray.setAssociatedWidget(parent) self.tray.setStandardActionsEnabled(False) self.tray.activateRequested.connect(self._activateRequested) else: self.menu = QMenu() self.tray = QSystemTrayIcon() self.tray.activated.connect(self._activated) self.setIcon(icon) self.setTitle(title) if not kde: self.tray.show() self.tray.setContextMenu(self.menu)
def __init__(self): super(QWidget, self).__init__() self.ui = Ui_MainWindow() self.ui.setupUi(self) self.systemTray = QSystemTrayIcon(self) self.systemTray.setIcon(QIcon(':/images/icon.png')) self.act_autostart = QAction('开机启动', self) self.act_autostart.setCheckable(True) is_autostart = self.is_autostart() self.act_autostart.setChecked(is_autostart) self.act_autostart.triggered.connect(self.on_autostart) act_setting = QAction('设置启动项', self) act_setting.triggered.connect(self.on_settings) act_exit = QAction('退出', self) act_exit.triggered.connect(self.on_exit) self.menu_run = QMenu('运行', self) menu = QMenu('菜单', self) menu.addMenu(self.menu_run) menu.addAction(act_setting) menu.addSeparator() menu.addAction(self.act_autostart) menu.addAction(act_exit) self.systemTray.setContextMenu(menu) self.systemTray.show() self.showMessage('启动工具正在运行') self.ui.btn_add.clicked.connect(self.on_add) self.ui.btn_delete.clicked.connect(self.on_delete) self.ui.btn_apply.clicked.connect(self.on_apply) self.ui.btn_env_add.clicked.connect(self.on_env_add) self.ui.btn_env_del.clicked.connect(self.on_env_del) self.ui.btn_open.clicked.connect(self.on_open) self.ui.btn_run.clicked.connect(self.on_run) self.ui.le_args.textEdited.connect(self.on_edited) self.ui.le_desc.textEdited.connect(self.on_edited) self.ui.le_exe.textEdited.connect(self.on_edited) self.ui.cb_process.currentIndexChanged.connect(self.on_index_changed) self.ui.le_exe.installEventFilter(self) self.init()
"http://smartpm.org", "*****@*****.**") for author in AUTHORS: name, email = author.rsplit(" ", 1) aboutData.addAuthor(ki18n(name), ki18n(""), email.strip("<>"), "") KCmdLineArgs.init(sys.argv, aboutData) app = KApplication() import smart ctrl = smart.init() mainWindow = KMainWindow() smart_icon = QIcon(getPixmap("smart")) mainWindow.setWindowIcon(smart_icon) sysTray = QSystemTrayIcon(smart_icon, None) smart_image = getPixmap("smart").toImage() aboutData.setProgramLogo(QVariant(smart_image)) menu = QMenu(None) menu.addAction(KIcon("view-refresh"), "Check for updates", smart_update) menu.addAction(smart_icon, "Launch Smart", smart_gui) menu.addSeparator() menu.addAction(KIcon("help-about"), "About", show_about) menu.addAction(KIcon("application-exit"), "Quit", exit_applet) sysTray.setContextMenu(menu) sysTray.show() app.exec_()
def __init__(self, parent=None): super(MainWindow, self).__init__(parent) self.saved_account_state = None notification_center = NotificationCenter() notification_center.add_observer(self, name='SIPApplicationWillStart') notification_center.add_observer(self, name='SIPApplicationDidStart') notification_center.add_observer(self, name='SIPAccountGotMessageSummary') notification_center.add_observer(self, name='SIPAccountGotPendingWatcher') notification_center.add_observer(self, name='BlinkSessionNewOutgoing') notification_center.add_observer(self, name='BlinkSessionDidReinitializeForOutgoing') notification_center.add_observer(self, name='BlinkFileTransferNewIncoming') notification_center.add_observer(self, name='BlinkFileTransferNewOutgoing') notification_center.add_observer(self, name='DocumentSharingFileTransferCompleted') notification_center.add_observer(self, sender=AccountManager()) icon_manager = IconManager() self.pending_watcher_dialogs = [] self.mwi_icons = [QIcon(Resources.get('icons/mwi-%d.png' % i)) for i in xrange(0, 11)] self.mwi_icons.append(QIcon(Resources.get('icons/mwi-many.png'))) with Resources.directory: self.setupUi() self.setWindowTitle('Blink') self.setWindowIconText('Blink') geometry = QSettings().value("main_window/geometry") if geometry: self.restoreGeometry(geometry) self.default_icon_path = Resources.get('icons/default-avatar.png') self.default_icon = QIcon(self.default_icon_path) self.last_icon_directory = Path('~').normalized self.set_user_icon(icon_manager.get('avatar')) self.active_sessions_label.hide() self.enable_call_buttons(False) self.conference_button.setEnabled(False) self.hangup_all_button.setEnabled(False) self.sip_server_settings_action.setEnabled(False) self.search_for_people_action.setEnabled(False) self.history_on_server_action.setEnabled(False) self.main_view.setCurrentWidget(self.contacts_panel) self.contacts_view.setCurrentWidget(self.contact_list_panel) self.search_view.setCurrentWidget(self.search_list_panel) # System tray if QSystemTrayIcon.isSystemTrayAvailable(): self.system_tray_icon = QSystemTrayIcon(QIcon(Resources.get('icons/blink.png')), self) self.system_tray_icon.activated.connect(self._SH_SystemTrayIconActivated) menu = QMenu(self) menu.addAction(QAction("Show", self, triggered=self._AH_SystemTrayShowWindow)) menu.addAction(QAction(QIcon(Resources.get('icons/application-exit.png')), "Quit", self, triggered=self._AH_QuitActionTriggered)) self.system_tray_icon.setContextMenu(menu) self.system_tray_icon.show() else: self.system_tray_icon = None # Accounts self.account_model = AccountModel(self) self.enabled_account_model = ActiveAccountModel(self.account_model, self) self.server_tools_account_model = ServerToolsAccountModel(self.account_model, self) self.identity.setModel(self.enabled_account_model) # Contacts self.contact_model = ContactModel(self) self.contact_search_model = ContactSearchModel(self.contact_model, self) self.contact_list.setModel(self.contact_model) self.search_list.setModel(self.contact_search_model) # Sessions (audio) self.session_model = AudioSessionModel(self) self.session_list.setModel(self.session_model) self.session_list.selectionModel().selectionChanged.connect(self._SH_SessionListSelectionChanged) # History self.history_manager = HistoryManager() # Windows, dialogs and panels self.about_panel = AboutPanel(self) self.conference_dialog = ConferenceDialog(self) self.contact_editor_dialog = ContactEditorDialog(self) self.google_contacts_dialog = GoogleContactsDialog(self) self.filetransfer_window = FileTransferWindow() self.preferences_window = PreferencesWindow(self.account_model, None) self.server_tools_window = ServerToolsWindow(self.server_tools_account_model, None) self.documents_window = DocumentsWindow() # Signals self.account_state.stateChanged.connect(self._SH_AccountStateChanged) self.account_state.clicked.connect(self._SH_AccountStateClicked) self.activity_note.editingFinished.connect(self._SH_ActivityNoteEditingFinished) self.add_contact_button.clicked.connect(self._SH_AddContactButtonClicked) self.add_search_contact_button.clicked.connect(self._SH_AddContactButtonClicked) self.audio_call_button.clicked.connect(self._SH_AudioCallButtonClicked) self.video_call_button.clicked.connect(self._SH_VideoCallButtonClicked) self.chat_session_button.clicked.connect(self._SH_ChatSessionButtonClicked) self.share_document_button.clicked.connect(self._SH_ShareDocumentButtonClicked) self.back_to_contacts_button.clicked.connect(self.search_box.clear) # this can be set in designer -Dan self.conference_button.makeConference.connect(self._SH_MakeConference) self.conference_button.breakConference.connect(self._SH_BreakConference) self.contact_list.selectionModel().selectionChanged.connect(self._SH_ContactListSelectionChanged) self.contact_model.itemsAdded.connect(self._SH_ContactModelAddedItems) self.contact_model.itemsRemoved.connect(self._SH_ContactModelRemovedItems) self.display_name.editingFinished.connect(self._SH_DisplayNameEditingFinished) self.hangup_all_button.clicked.connect(self._SH_HangupAllButtonClicked) self.identity.activated[int].connect(self._SH_IdentityChanged) self.identity.currentIndexChanged[int].connect(self._SH_IdentityCurrentIndexChanged) self.mute_button.clicked.connect(self._SH_MuteButtonClicked) self.search_box.textChanged.connect(self._SH_SearchBoxTextChanged) self.search_box.returnPressed.connect(self._SH_SearchBoxReturnPressed) self.search_box.shortcut.activated.connect(self.search_box.setFocus) self.search_list.selectionModel().selectionChanged.connect(self._SH_SearchListSelectionChanged) self.server_tools_account_model.rowsInserted.connect(self._SH_ServerToolsAccountModelChanged) self.server_tools_account_model.rowsRemoved.connect(self._SH_ServerToolsAccountModelChanged) self.session_model.sessionAdded.connect(self._SH_AudioSessionModelAddedSession) self.session_model.sessionRemoved.connect(self._SH_AudioSessionModelRemovedSession) self.session_model.structureChanged.connect(self._SH_AudioSessionModelChangedStructure) self.silent_button.clicked.connect(self._SH_SilentButtonClicked) self.switch_view_button.viewChanged.connect(self._SH_SwitchViewButtonChangedView) # Blink menu actions self.about_action.triggered.connect(self.about_panel.show) self.add_account_action.triggered.connect(self.preferences_window.show_add_account_dialog) self.manage_accounts_action.triggered.connect(self.preferences_window.show_for_accounts) self.help_action.triggered.connect(partial(QDesktopServices.openUrl, QUrl(u'http://icanblink.com/help-qt.phtml'))) self.preferences_action.triggered.connect(self.preferences_window.show) self.auto_accept_chat_action.triggered.connect(self._AH_AutoAcceptChatActionTriggered) self.received_messages_sound_action.triggered.connect(self._AH_ReceivedMessagesSoundActionTriggered) self.answering_machine_action.triggered.connect(self._AH_EnableAnsweringMachineActionTriggered) self.release_notes_action.triggered.connect(partial(QDesktopServices.openUrl, QUrl(u'http://icanblink.com/changelog-qt.phtml'))) self.quit_action.triggered.connect(self._AH_QuitActionTriggered) # Call menu actions self.redial_action.triggered.connect(self._AH_RedialActionTriggered) self.join_conference_action.triggered.connect(self.conference_dialog.show) self.history_menu.aboutToShow.connect(self._SH_HistoryMenuAboutToShow) self.history_menu.triggered.connect(self._AH_HistoryMenuTriggered) self.output_devices_group.triggered.connect(self._AH_AudioOutputDeviceChanged) self.input_devices_group.triggered.connect(self._AH_AudioInputDeviceChanged) self.alert_devices_group.triggered.connect(self._AH_AudioAlertDeviceChanged) self.video_devices_group.triggered.connect(self._AH_VideoDeviceChanged) self.mute_action.triggered.connect(self._SH_MuteButtonClicked) self.silent_action.triggered.connect(self._SH_SilentButtonClicked) # Tools menu actions self.sip_server_settings_action.triggered.connect(self._AH_SIPServerSettings) self.search_for_people_action.triggered.connect(self._AH_SearchForPeople) self.history_on_server_action.triggered.connect(self._AH_HistoryOnServer) # Window menu actions self.chat_window_action.triggered.connect(self._AH_ChatWindowActionTriggered) self.transfers_window_action.triggered.connect(self._AH_TransfersWindowActionTriggered) self.logs_window_action.triggered.connect(self._AH_LogsWindowActionTriggered) self.received_files_window_action.triggered.connect(self._AH_ReceivedFilesWindowActionTriggered) self.screenshots_window_action.triggered.connect(self._AH_ScreenshotsWindowActionTriggered) self.documents_window_action.triggered.connect(self._AH_DocumentsWindowActionTriggered)
try: _fromUtf8 = QString.fromUtf8 except AttributeError: def _fromUtf8(s): return s app = QApplication(sys.argv) app.setQuitOnLastWindowClosed(False) m = QWidget() d = QMainWindow(m) t = QSystemTrayIcon(m) t.setIcon(QIcon('icon/tray.png')) ui = Ui_UniFileSyncPop() ui.setupUi(d) d.setFixedSize(d.size()) req = {'type': 'request'} confManager = ConfManager.getManager() fts = confManager.getValue('common', 'folders') ui.nameLabel.setText(confManager.getValue('UI', 'username'))
def __init__(self): super(MainWindow, self).__init__() self.config = Config() self.db = Database(self.config.getConnectionString()) cryptoKey = self.getCryptoKey() self.hosts = Hosts(self.db, cryptoKey) # menu used for each host self.hostMenu = QMenu() self.editAction = QAction(QIcon(':/ico/edit.svg'), "Edit", self.hostMenu) self.editAction.triggered.connect(self.editHost) self.hostMenu.addAction(self.editAction) # menu used for headers of groups self.groupsHeaderMenu = QMenu() self.editGroupAction = QAction(QIcon(':/ico/edit.svg'), "Edit group", self.groupsHeaderMenu) self.editGroupAction.triggered.connect(self.editGroup) self.deleteGroupAction = QAction(QIcon(':/ico/remove.svg'), "Delete group", self.groupsHeaderMenu) self.deleteGroupAction.triggered.connect(self.deleteGroup) self.groupsHeaderMenu.addAction(self.editGroupAction) self.groupsHeaderMenu.addAction(self.deleteGroupAction) self.duplicateAction = QAction(QIcon(':/ico/copy.svg'), "Duplicate", self.hostMenu) self.duplicateAction.triggered.connect(self.duplicateHost) self.hostMenu.addAction(self.duplicateAction) # todo: confirm for delete action self.deleteAction = QAction(QIcon(':/ico/remove.svg'), "Delete", self.hostMenu) self.deleteAction.triggered.connect(self.deleteHost) self.hostMenu.addAction(self.deleteAction) self.connectFramelessMenu = actions.generateScreenChoseMenu( self.hostMenu, self.connectFrameless, ':/ico/frameless.svg', "Connect frameless") self.hostMenu.addMenu(self.connectFramelessMenu) self.assignGroupAction = QAction("Assign group", self.hostMenu) self.assignGroupAction.triggered.connect(self.assignGroup) self.hostMenu.addAction(self.assignGroupAction) # setup main window self.ui = Ui_MainWindow() self.ui.setupUi(self) # when top level changed, we changing dock title bar self.dockWidgetTileBar = DockWidgetTitleBar() self.ui.hostsDock.setTitleBarWidget(self.dockWidgetTileBar) self.ui.hostsDock.topLevelChanged.connect(self.dockLevelChanged) # set global menu self.globalMenu = QMenu() self.globalMenu.addAction(QIcon(':/ico/add.svg'), 'Add host', self.addHost) # groups menu self.groupsMenu = QMenu("Groups") self.groupsMenu.aboutToShow.connect(self.setGroupsMenu) self.globalMenu.addMenu(self.groupsMenu) # disable menu indicator self.ui.menu.setStyleSheet( "QPushButton::menu-indicator {image: none;}") self.positionMenu = QMenu("Dock position") self.positionMenu.addAction( "Left", lambda: self.setDockPosition(Qt.LeftDockWidgetArea)) self.positionMenu.addAction( "Right", lambda: self.setDockPosition(Qt.RightDockWidgetArea)) self.positionMenu.addAction("Float", self.setDockFloat) self.globalMenu.addMenu(self.positionMenu) self.globalMenu.addAction('Change tray icon visibility', self.changeTrayIconVisibility) self.globalMenu.addAction('Settings', self.showSettings) self.globalMenu.addAction('Quit', self.close) self.ui.menu.setMenu(self.globalMenu) # set events on hosts list self.ui.hostsList.itemDoubleClicked.connect(self.slotConnectHost) self.ui.hostsList.itemClicked.connect(self.slotShowHost) self.ui.hostsList.customContextMenuRequested.connect( self.slotShowHostContextMenu) # set tab widget self.tabWidget = MyTabWidget() self.setCentralWidget(self.tabWidget) self.tabWidget.setContextMenuPolicy(Qt.CustomContextMenu) self.tabWidget.customContextMenuRequested.connect( self.showCentralWidgetContextMenu) # set tray icon self.tray = QSystemTrayIcon(QIcon(":/ico/myrdp.svg")) self.tray.activated.connect(self.trayActivated) self.trayMenu = QMenu() self.trayMenu.addAction("Hide tray icon", self.changeTrayIconVisibility) self.connectHostMenuTray = ConnectHostMenu(self.hosts) self.connectHostMenuTray.triggered.connect( self.connectHostFromTrayMenu) self.trayMenu.addMenu(self.connectHostMenuTray) self.trayMenu.addAction("Quit", self.close) self.tray.setContextMenu(self.trayMenu) self.restoreSettings() # host list self.ui.filter.textChanged.connect(self.setHostList) self.setHostList()
if __name__ == "__main__": #don't clutter console with debuginfo if (len(sys.argv) <= 1 or sys.argv[1] != "debug"): #I don't know how to redirect output to /dev/null so just make a tmp file until I figure out #logfile = open("/dev/null", "w") #sys.stdout = logfile pass elif (sys.argv[1] != "debug"): import wingdbstub app = QApplication(sys.argv) app.setQuitOnLastWindowClosed(False) window = myMainWindow() tray = QSystemTrayIcon(QIcon(":/pics/pic24.png")) menu = QMenu() actionShow = QAction("Show Leopard Flower", menu) actionExit = QAction("Exit", menu) menu.addAction(actionShow) menu.addAction(actionExit) tray.setContextMenu(menu) tray.show() actionShow.triggered.connect(window.show) actionExit.triggered.connect(window.realQuit) sourcemodel = myModel() model = mySortFilterProxyModel() model.setSourceModel(sourcemodel) model.setDynamicSortFilter(True)
def createTray(): app.TrayIcon = QSystemTrayIcon(app.AppIcon, app.MainWin) app.TrayIcon.activated.connect(trayClick) app.TrayIcon.setToolTip("Geek Guide") app.TrayIcon.setContextMenu(createTrayMenu(app.TrayIcon, [1, 3, 4, 5])) app.TrayIcon.show()
if (len(sys.argv) <= 1 or sys.argv[1] != "debug"): #I don't know how to redirect output to /dev/null so just make a tmp file until I figure out logfile = open("/dev/null", "w") sys.stdout = logfile app = QApplication(sys.argv) app.setQuitOnLastWindowClosed(True) window = myMainWindow() icon = QIcon(":/pics/pic.jpg") window.setWindowIcon(icon) window.setWindowTitle("Leopard Flower firewall") window.show() tray = QSystemTrayIcon(icon) menu = QMenu() actionShow = QAction("Show Leopard Flower", menu) actionExit = QAction("Exit", menu) menu.addAction(actionShow) menu.addAction(actionExit) tray.setContextMenu(menu) tray.show() actionShow.triggered.connect(window.show) actionExit.triggered.connect(window.realQuit) modelAll = QStandardItemModel() modelAll.setHorizontalHeaderLabels( ("Name", "Process ID", "Permissions", "Full path", "Incoming allowed", "Outgoing allowed", "Incoming denied", "Outgoing denied")) modelActive = QStandardItemModel()