我们从Python开源项目中,提取了以下50个代码示例,用于说明如何使用PySide.QtGui.QMenu()。
def CustomContextMenuHandler(self, pos): menu = QtGui.QMenu(self) menu.addAction(QtGui.QAction("Xref ...", self, statusTip="List the references where this element is used", triggered=self.actionXref)) menu.addAction(QtGui.QAction("Go to...", self, statusTip="Go to element definition", triggered=self.actionGoto)) menu.addAction(QtGui.QAction("Rename...", self, statusTip="Rename an element (class, method, ...)", triggered=self.actionRename)) menu.addAction(QtGui.QAction("Info...", self, statusTip="Display info of an element (anything useful in the document)", triggered=self.actionInfo)) menu.addAction(QtGui.QAction("Reload sources...", self, statusTip="Reload sources (needed when renaming changed other tabs)", triggered=self.reload_java_sources)) menu.addAction(QtGui.QAction("Open bytecodes...", self, statusTip="", triggered=self.display_bytecodes)) menu.exec_(QtGui.QCursor.pos())
def setLang(self, langName): uiList_lang_read = self.memoData['lang'][langName] for ui_name in uiList_lang_read: ui_element = self.uiList[ui_name] if type(ui_element) in [ QtGui.QLabel, QtGui.QPushButton, QtGui.QAction, QtGui.QCheckBox ]: # uiType: QLabel, QPushButton, QAction(menuItem), QCheckBox if uiList_lang_read[ui_name] != "": ui_element.setText(uiList_lang_read[ui_name]) elif type(ui_element) in [ QtGui.QGroupBox, QtGui.QMenu ]: # uiType: QMenu, QGroupBox if uiList_lang_read[ui_name] != "": ui_element.setTitle(uiList_lang_read[ui_name]) elif type(ui_element) in [ QtGui.QTabWidget]: # uiType: QTabWidget tabCnt = ui_element.count() if uiList_lang_read[ui_name] != "": tabNameList = uiList_lang_read[ui_name].split(';') if len(tabNameList) == tabCnt: for i in range(tabCnt): if tabNameList[i] != "": ui_element.setTabText(i,tabNameList[i]) elif type(ui_element) == str: # uiType: string for msg if uiList_lang_read[ui_name] != "": self.uiList[ui_name] = uiList_lang_read[ui_name]
def createNodeMenu(self): menuEntry = QtGui.QGraphicsWidget() menuEntryLayout = QtGui.QHBoxLayout() menuEntry.setLayout(menuEntryLayout) menuEntry.setGeometry(0,0,100,100) menuEntryTextField = QtGui.QLineEdit() menuEntryLayout.addWidget(menuEntryTextField) menu = QtGui.QMenu("Create Node") menu.addAction("Node1") menu.addAction("Node2") menu.popup(QtGui.QCursor.pos()) menu.setZValue(100000) print "Menu"
def init_tray(self): self._popup_shown = False self.trayIcon = QtGui.QSystemTrayIcon(QtGui.QIcon("icons/windows_icon.ico"),self) self.trayIconMenu = QtGui.QMenu() self.openAction = QtGui.QAction("&Show/Hide", self, triggered=self._showhide) self.startupAction = QtGui.QAction("Start &Automatically", self, triggered=self.toggle_startup) self.exitAction = QtGui.QAction("&Exit", self, triggered=self._icon_exit) self.startupAction.setCheckable(True) self.startupAction.setChecked(check_startup()) self.trayIconMenu.addAction(self.openAction) self.trayIconMenu.addSeparator() self.trayIconMenu.addAction(self.startupAction) self.trayIconMenu.addSeparator() self.trayIconMenu.addAction(self.exitAction) self.trayIcon.setContextMenu(self.trayIconMenu) self.trayIcon.activated.connect(self._icon_activated) self._show_when_systray_available()
def qui_menu(self, action_list_str, menu_str): # qui menu creation # syntax: self.qui_menu('right_menu_createFolder_atn;Create Folder,Ctrl+D | right_menu_openFolder_atn;Open Folder', 'right_menu') if menu_str not in self.uiList.keys(): self.uiList[menu_str] = QtWidgets.QMenu() create_opt_list = [ x.strip() for x in action_list_str.split('|') ] for each_creation in create_opt_list: ui_info = [ x.strip() for x in each_creation.split(';') ] atn_name = ui_info[0] atn_title = '' atn_hotkey = '' if len(ui_info) > 1: options = ui_info[1].split(',') atn_title = '' if len(options) < 1 else options[0] atn_hotkey = '' if len(options) < 2 else options[1] if atn_name != '': if atn_name == '_': self.uiList[menu_str].addSeparator() else: if atn_name not in self.uiList.keys(): self.uiList[atn_name] = QtWidgets.QAction(atn_title, self) if atn_hotkey != '': self.uiList[atn_name].setShortcut(QtGui.QKeySequence(atn_hotkey)) self.uiList[menu_str].addAction(self.uiList[atn_name])
def qui_menubar(self, menu_list_str): if not isinstance(self, QtWidgets.QMainWindow): print("Warning: Only QMainWindow can have menu bar.") return menubar = self.menuBar() create_opt_list = [ x.strip() for x in menu_list_str.split('|') ] for each_creation in create_opt_list: ui_info = [ x.strip() for x in each_creation.split(';') ] menu_name = ui_info[0] menu_title = '' if len(ui_info) > 1: menu_title = ui_info[1] if menu_name not in self.uiList.keys(): self.uiList[menu_name] = QtWidgets.QMenu(menu_title) menubar.addMenu(self.uiList[menu_name]) # compatible hold function
def setLang(self, langName): uiList_lang_read = self.memoData['lang'][langName] for ui_name in uiList_lang_read: ui_element = self.uiList[ui_name] if type(ui_element) in [ QtWidgets.QLabel, QtWidgets.QPushButton, QtWidgets.QAction, QtWidgets.QCheckBox ]: # uiType: QLabel, QPushButton, QAction(menuItem), QCheckBox if uiList_lang_read[ui_name] != "": ui_element.setText(uiList_lang_read[ui_name]) elif type(ui_element) in [ QtWidgets.QGroupBox, QtWidgets.QMenu ]: # uiType: QMenu, QGroupBox if uiList_lang_read[ui_name] != "": ui_element.setTitle(uiList_lang_read[ui_name]) elif type(ui_element) in [ QtWidgets.QTabWidget]: # uiType: QTabWidget tabCnt = ui_element.count() if uiList_lang_read[ui_name] != "": tabNameList = uiList_lang_read[ui_name].split(';') if len(tabNameList) == tabCnt: for i in range(tabCnt): if tabNameList[i] != "": ui_element.setTabText(i,tabNameList[i]) elif type(ui_element) == str: # uiType: string for msg if uiList_lang_read[ui_name] != "": self.uiList[ui_name] = uiList_lang_read[ui_name]
def __init__(self, sandbox, *args, **kwargs): QtGui.QMenu.__init__(self, *args, **kwargs) self.setTitle('Add Source') self.sandbox = sandbox backends = set(src.display_backend for src in __sources__) for ibe, be in enumerate(backends): self.addSection(be) for src in [s for s in __sources__ if s.display_backend == be]: self.addSourceDelegate(src) if ibe is not len(backends) - 1: self.addSeparator()
def CustomContextMenuHandler(self, pos): menu = QtGui.QMenu(self) menu.addAction(QtGui.QAction("Xref from...", self, statusTip="List the references where this element is used", triggered=self.actionXref)) menu.addAction(QtGui.QAction("Go to...", self, statusTip="Go to element definition", triggered=self.actionGoto)) menu.addAction(QtGui.QAction("Rename...", self, statusTip="Rename an element (class, method, ...)", triggered=self.actionRename)) menu.addAction(QtGui.QAction("Info...", self, statusTip="Display info of an element (anything useful in the document)", triggered=self.actionInfo)) menu.addAction(QtGui.QAction("Reload sources...", self, statusTip="Reload sources (needed when renaming changed other tabs)", triggered=self.reload_java_sources)) menu.exec_(QtGui.QCursor.pos())
def setupToolButtonExtra(self): self.menu = QtGui.QMenu() self.ag = QtGui.QActionGroup(self.menu) for n in valid_select: a1 = QtGui.QAction(select_names[n], self.menu) def closure(n): def fn(): self.__set_version(n) self.toolButton.click() return fn a1.triggered.connect(closure(n)) self.menu.addAction(a1) self.ag.addAction(a1) self.toolButton.setMenu(self.menu) self.__update_icon()
def __init__(self, mw): QtGui.QMenu.__init__(self, "&File", mw) # Build the "Add" menu self.__menu_add = self.addMenu("Add") # TODO: Move the addImage action to the action package act = QtGui.QAction("Image", mw, triggered=mw.addImage) self.__menu_add.addAction(act) # Add the rest of the actions self.addSeparator() self.addAction(mw.saveAction) self.addAction(mw.saveAsAction) self.addSeparator() self.addAction(mw.exitAct) # the "save" option is disabled if a) the project hasn't changed # or b) the save location isn't defined def updateCanSave(): mw.saveAction.setEnabled(mw.project.can_save) # So update the "greyed" state immediately before rendering self.aboutToShow.connect(updateCanSave)
def __init__(self, mw): QtGui.QMenu.__init__(self, "&View", mw) self.subWindowMenu = self.addMenu("Sub-Windows") self.addSeparator() self.addAction(mw.rotate90L) self.addAction(mw.rotate90R) self.addAction(mw.flipX) self.addAction(mw.flipY) self.addAction(mw.permute) self.addSeparator() self.__toggle_show_action = ToggleShowImageryAction(mw, mw.viewArea) self.__toggle_draw_others = ToggleDrawOtherLayersAction(mw, mw.viewArea) self.addAction(self.__toggle_show_action) self.addAction(self.__toggle_draw_others) def update_sub(): self.__toggle_show_action.update_from_prop() self.__toggle_draw_others.update_from_prop() self.aboutToShow.connect(update_sub)
def contextMenuEvent(self, event): """ Right-click menu """ menu = QtGui.QMenu(self) insert_action = menu.addAction("Insert Line") delete_action = menu.addAction("Delete Line") insert_action.setEnabled(False) delete_action.setEnabled(False) # action = menu.exec_(self.mapToGlobal(event.pos())) # if action == delete_action: # self.parent.delete_row() # elif action == insert_action: # self.parent.insert_row()
def list_context_menu(self, pos): """ """ menu = QtGui.QMenu(self.listWidget) delete_action = menu.addAction("Delete") any_selected = len(self.listWidget.selectionModel().selectedRows()) > 0 if not any_selected: delete_action.setEnabled(False) action = menu.exec_(self.listWidget.mapToGlobal(pos)) if action == delete_action: self.delete_current_line() return None
def setupFileMenu(self): fileMenu = QtGui.QMenu("&File", self) self.menuBar().addMenu(fileMenu) fileMenu.addAction("&Open...", self.openFile, "Ctrl+O") fileMenu.addAction("&Add...", self.addFile, "Ctrl+A") fileMenu.addAction("&Save...", self.saveFile, "Ctrl+S") fileMenu.addAction("E&xit", self.quit, "Ctrl+Q")
def setupViewMenu(self): viewMenu = QtGui.QMenu("&View", self) self.menuBar().addMenu(viewMenu) viewMenu.addAction("&Strings...", self.openStringsWindow)
def setupHelpMenu(self): helpMenu = QtGui.QMenu("&Help", self) self.menuBar().addMenu(helpMenu) helpMenu.addAction("&About", self.about) helpMenu.addAction("About &Qt", QtGui.qApp.aboutQt)
def contextMenuEvent(self, event): menu = QtGui.QMenu(self) menu.addAction(self.xrefAct) menu.addAction(self.expandAct) menu.addAction(self.collapseAct) menu.exec_(event.globalPos())
def contextMenuEvent(self, event): menu = QtGui.QMenu() testAction = QtGui.QAction('Select This Community Over Time', None) CommunityAction= QtGui.QAction('Select This Community', None) testAction.triggered.connect(self.SelectCommunitiesOverTime) CommunityAction.triggered.connect(self.SelectingCommunityInThisTimestep) menu.addAction(testAction) menu.addAction(CommunityAction) menu.exec_(event.screenPos())
def mousePressEvent(self,event): pos = event.pos() selectedItem = self.itemAt(pos) for item in self.selectedItems(): item.setSelected(False) if type(selectedItem) == QtGui.QTreeWidgetItem: selectedItem.setSelected(True) if event.button() == QtCore.Qt.RightButton: pos = QtGui.QCursor.pos() menu = QtGui.QMenu("Jobs") menu.addAction("Open") menu.addAction("Properties") menu.addSeparator() menu.addAction("Restart") menu.addAction("Stop") menu.addAction("Kill") menu.addSeparator() menu.addAction("Restart all error tasks") menu.addAction("Kill all running tasks") menu.addSeparator() menu.addAction("Delete") menu.exec_(pos) else: if self.listType == "jobs": if type(selectedItem) == QtGui.QTreeWidgetItem: conn = sqlite3.connect(self.database) h = conn.execute("SELECT tasks FROM jobs WHERE rowid=%s"%(selectedItem.text(0))).fetchone() conn.close() dbFilter = ("rowid IN %s"%(h[0])).replace("[","(").replace("]",")") self.connectedList.refreshList(dbFilter) else: self.connectedList.refreshList("rowid=-1")
def show_software_item_menu(self): item = self.find_item_under_mouse(self.software_commands) if item: popupMenu = QtGui.QMenu(self) viewFolder = self._action("Delete Current Item", self.delete_item) popupMenu.addAction(viewFolder) popupMenu.addSeparator() popupMenu.exec_(QtGui.QCursor.pos()) # return item
def setLang(self, langName): lang_data = self.memoData['lang'][langName] for ui_name in lang_data.keys(): if ui_name in self.uiList.keys() and lang_data[ui_name] != '': ui_element = self.uiList[ui_name] # '' means no translation availdanle in that data file if isinstance(ui_element, (QtWidgets.QLabel, QtWidgets.QPushButton, QtWidgets.QAction, QtWidgets.QCheckBox) ): # uiType: QLabel, QPushButton, QAction(menuItem), QCheckBox ui_element.setText(lang_data[ui_name]) elif isinstance(ui_element, (QtWidgets.QGroupBox, QtWidgets.QMenu) ): # uiType: QMenu, QGroupBox ui_element.setTitle(lang_data[ui_name]) elif isinstance(ui_element, QtWidgets.QTabWidget): # uiType: QTabWidget tabCnt = ui_element.count() tabNameList = lang_data[ui_name].split(';') if len(tabNameList) == tabCnt: for i in range(tabCnt): if tabNameList[i] != '': ui_element.setTabText(i,tabNameList[i]) elif isinstance(ui_element, QtWidgets.QComboBox): # uiType: QComboBox itemCnt = ui_element.count() itemNameList = lang_data[ui_name].split(';') ui_element.clear() ui_element.addItems(itemNameList) elif isinstance(ui_element, QtWidgets.QTreeWidget): # uiType: QTreeWidget labelCnt = ui_element.headerItem().columnCount() labelList = lang_data[ui_name].split(';') ui_element.setHeaderLabels(labelList) elif isinstance(ui_element, QtWidgets.QTableWidget): # uiType: QTableWidget colCnt = ui_element.columnCount() headerList = lang_data[ui_name].split(';') cur_table.setHorizontalHeaderLabels( headerList ) elif isinstance(ui_element, (str, unicode) ): # uiType: string for msg self.uiList[ui_name] = lang_data[ui_name]
def qui_atn(self, ui_name, title, tip=None, icon=None, parent=None, key=None): self.uiList[ui_name] = QtWidgets.QAction(title, self) if icon!=None: self.uiList[ui_name].setIcon(QtGui.QIcon(icon)) if tip !=None: self.uiList[ui_name].setStatusTip(tip) if key != None: self.uiList[ui_name].setShortcut(QtGui.QKeySequence(key)) if parent !=None: if isinstance(parent, (str, unicode)) and parent in self.uiList.keys(): self.uiList[parent].addAction(self.uiList[ui_name]) elif isinstance(parent, QtWidgets.QMenu): parent.addAction(self.uiList[ui_name]) return ui_name
def loadLang(self): self.quickMenu(['language_menu;&Language']) cur_menu = self.uiList['language_menu'] self.quickMenuAction('langDefault_atnLang', 'Default','','langDefault.png', cur_menu) cur_menu.addSeparator() self.uiList['langDefault_atnLang'].triggered.connect(partial(self.setLang,'default')) # store default language self.memoData['lang']={} self.memoData['lang']['default']={} for ui_name in self.uiList: ui_element = self.uiList[ui_name] if type(ui_element) in [ QtWidgets.QLabel, QtWidgets.QPushButton, QtWidgets.QAction, QtWidgets.QCheckBox ]: # uiType: QLabel, QPushButton, QAction(menuItem), QCheckBox self.memoData['lang']['default'][ui_name] = str(ui_element.text()) elif type(ui_element) in [ QtWidgets.QGroupBox, QtWidgets.QMenu ]: # uiType: QMenu, QGroupBox self.memoData['lang']['default'][ui_name] = str(ui_element.title()) elif type(ui_element) in [ QtWidgets.QTabWidget]: # uiType: QTabWidget tabCnt = ui_element.count() tabNameList = [] for i in range(tabCnt): tabNameList.append(str(ui_element.tabText(i))) self.memoData['lang']['default'][ui_name]=';'.join(tabNameList) elif type(ui_element) == str: # uiType: string for msg self.memoData['lang']['default'][ui_name] = self.uiList[ui_name] # try load other language lang_path = os.path.dirname(self.location) # better in packed than(os.path.abspath(__file__)) baseName = os.path.splitext( os.path.basename(self.location) )[0] for fileName in os.listdir(lang_path): if fileName.startswith(baseName+"_lang_"): langName = fileName.replace(baseName+"_lang_","").split('.')[0].replace(" ","") self.memoData['lang'][ langName ] = self.readRawFile( os.path.join(lang_path,fileName) ) self.quickMenuAction(langName+'_atnLang', langName.upper(),'',langName + '.png', cur_menu) self.uiList[langName+'_atnLang'].triggered.connect(partial(self.setLang,langName)) # if no language file detected, add export default language option if len(self.memoData['lang']) == 1: self.quickMenuAction('langExport_atnLang', 'Export Default Language','','langExport.png', cur_menu) self.uiList['langExport_atnLang'].triggered.connect(self.exportLang)
def quickMenu(self, ui_names): if isinstance(self, QtWidgets.QMainWindow): menubar = self.menuBar() for each_ui in ui_names: createOpt = each_ui.split(';') if len(createOpt) > 1: uiName = createOpt[0] uiLabel = createOpt[1] self.uiList[uiName] = QtWidgets.QMenu(uiLabel) menubar.addMenu(self.uiList[uiName]) else: print("Warning (QuickMenu): Only QMainWindow can have menu bar.")
def contextMenuEvent(self, event): menu = QtGui.QMenu(self) quitAction = menu.addAction("Quit") action = menu.exec_(self.mapToGlobal(event.pos())) if action == quitAction: self.close()
def loadLang(self): self.quickMenu(['language_menu;&Language']) cur_menu = self.uiList['language_menu'] self.quickMenuAction('langDefault_atnLang', 'Default','','langDefault.png', cur_menu) cur_menu.addSeparator() QtCore.QObject.connect( self.uiList['langDefault_atnLang'], QtCore.SIGNAL("triggered()"), partial(self.setLang, 'default') ) # store default language self.memoData['lang']={} self.memoData['lang']['default']={} for ui_name in self.uiList: ui_element = self.uiList[ui_name] if type(ui_element) in [ QtGui.QLabel, QtGui.QPushButton, QtGui.QAction, QtGui.QCheckBox ]: # uiType: QLabel, QPushButton, QAction(menuItem), QCheckBox self.memoData['lang']['default'][ui_name] = str(ui_element.text()) elif type(ui_element) in [ QtGui.QGroupBox, QtGui.QMenu ]: # uiType: QMenu, QGroupBox self.memoData['lang']['default'][ui_name] = str(ui_element.title()) elif type(ui_element) in [ QtGui.QTabWidget]: # uiType: QTabWidget tabCnt = ui_element.count() tabNameList = [] for i in range(tabCnt): tabNameList.append(str(ui_element.tabText(i))) self.memoData['lang']['default'][ui_name]=';'.join(tabNameList) elif type(ui_element) == str: # uiType: string for msg self.memoData['lang']['default'][ui_name] = self.uiList[ui_name] # try load other language lang_path = os.path.dirname(self.location) # better in packed than(os.path.abspath(__file__)) baseName = os.path.splitext( os.path.basename(self.location) )[0] for fileName in os.listdir(lang_path): if fileName.startswith(baseName+"_lang_"): langName = fileName.replace(baseName+"_lang_","").split('.')[0].replace(" ","") self.memoData['lang'][ langName ] = self.readRawFile( os.path.join(lang_path,fileName) ) self.quickMenuAction(langName+'_atnLang', langName.upper(),'',langName + '.png', cur_menu) QtCore.QObject.connect( self.uiList[langName+'_atnLang'], QtCore.SIGNAL("triggered()"), partial(self.setLang, langName) ) # if no language file detected, add export default language option if len(self.memoData['lang']) == 1: self.quickMenuAction('langExport_atnLang', 'Export Default Language','','langExport.png', cur_menu) QtCore.QObject.connect( self.uiList['langExport_atnLang'], QtCore.SIGNAL("triggered()"), self.exportLang )
def quickMenu(self, ui_names): if isinstance(self, QtGui.QMainWindow): menubar = self.menuBar() for each_ui in ui_names: createOpt = each_ui.split(';') if len(createOpt) > 1: uiName = createOpt[0] uiLabel = createOpt[1] self.uiList[uiName] = QtGui.QMenu(uiLabel) menubar.addMenu(self.uiList[uiName]) else: print("Warning (QuickMenu): Only QMainWindow can have menu bar.")
def contextMenuEvent(self, event): menu = QtWidgets.QMenu(self) quitAction = menu.addAction("Quit") action = menu.exec_(self.mapToGlobal(event.pos())) if action == quitAction: self.close()
def quickMenu(self, ui_names): if not isinstance(ui_names, (list, tuple)): # support qui format menu creation ui_names = [ x.strip() for x in ui_names.split('|') ] if isinstance(self, QtWidgets.QMainWindow): menubar = self.menuBar() for each_ui in ui_names: createOpt = each_ui.split(';') if len(createOpt) > 1: uiName = createOpt[0] uiLabel = createOpt[1] self.uiList[uiName] = QtWidgets.QMenu(uiLabel) menubar.addMenu(self.uiList[uiName]) else: print("Warning (QuickMenu): Only QMainWindow can have menu bar.")
def qui_menu(self, action_list_str, menu_str): # for context menu quick creation # syntax: self.qui_menu('right_menu_createFolder_atn;Create Folder | right_menu_openFolder_atn;Open Folder', 'right_menu') if menu_str not in self.uiList.keys(): self.uiList[menu_str] = QtWidgets.QMenu() create_opt_list = [ x.strip() for x in action_list_str.split('|') ] for each_creation in create_opt_list: options = [ x.strip() for x in each_creation.split(';') ] atn_name = options[0] atn_title = '' if len(options) < 2 else options[1] if atn_name != '': if atn_name not in self.uiList.keys(): self.uiList[atn_name] = QtWidgets.QAction(atn_title, self) self.uiList[menu_str].addAction(self.uiList[atn_name])