def connectActions(self): super(PlotMainWindow, self).connectActions() self.actionExport.triggered.connect(self.exportData_Callback) self.actionExport.setShortcut(QtCore.Qt.CTRL + QtCore.Qt.Key_E) self.actionImport.triggered.connect(self.importData_Callback) self.actionImport.setShortcut(QtCore.Qt.CTRL + QtCore.Qt.Key_I) self.fitTypeActionGroup = QtGui.QActionGroup(self) self.fitTypeActionGroup.addAction(self.actionFitTypeLinear) self.fitTypeActionGroup.addAction(self.actionFitTypePolynomial2) self.fitTypeActionGroup.addAction(self.actionFitTypePolynomial3) self.fitTypeActionGroup.addAction(self.actionFitTypePolynomial4) self.fitTypeActionGroup.addAction(self.actionFitTypePolynomial5) self.fitTypeActionGroup.setExclusive(True) self.fitTypeActionGroup.triggered.connect(self.fitTypeChanged_Callback) self.unitsActionGroup = QtGui.QActionGroup(self) self.unitsActionGroup.addAction(self.actionUnitsUM) self.unitsActionGroup.addAction(self.actionUnitsPPM) self.unitsActionGroup.addAction(self.actionUnitsPH) self.unitsActionGroup.setExclusive(True) self.unitsActionGroup.triggered.connect(self.unitsChanged_Callback) itemDelegate = DoubleItemDelegate(self.tableWidget) self.tableWidget.setItemDelegateForColumn(0, itemDelegate)
def createPopMenu(self): #actions self.popmenu = QtGui.QMenu(self) self.snn_ac_group = QtGui.QActionGroup(self.popmenu) self.snn_ac_group.setExclusive(True) self.ac_s11 = QtGui.QAction('S11', self.popmenu) self.ac_s21 = QtGui.QAction('S21', self.popmenu) self.ac_s12 = QtGui.QAction('S12', self.popmenu) self.ac_s22 = QtGui.QAction('S22', self.popmenu) snn_actions = [self.ac_s11, self.ac_s21, self.ac_s12, self.ac_s22] for ac in snn_actions: ac.setCheckable(True) self.snn_ac_group.addAction(ac) self.ac_s11.setChecked(True) self.popmenu.addActions(snn_actions) self.ac_delay = QtGui.QAction('show delay', self.popmenu) self.ac_phase = QtGui.QAction('show phase', self.popmenu) self.ac_expanded = QtGui.QAction('show expanded', self.popmenu) self.type_ac_group = QtGui.QActionGroup(self.popmenu) types_actions = [self.ac_delay, self.ac_phase, self.ac_expanded] for ac in types_actions: ac.setCheckable(True) self.type_ac_group.addAction(ac) self.ac_phase.setChecked(True) self.popmenu.addActions(types_actions) self.setShowPopMenu(True)
def createAction(self): self.newAct = QtGui.QAction(QtGui.QIcon(':/images/new.png'), u"&新規作成...", self) self.newAct.setShortcuts(QtGui.QKeySequence.New) self.newAct.triggered.connect(self.newFile) self.openAct = QtGui.QAction(QtGui.QIcon(':/images/open.png'), u"&開く...", self) self.openAct.setShortcuts(QtGui.QKeySequence.Open) self.openAct.triggered.connect(self.open) self.saveAct = QtGui.QAction(QtGui.QIcon(':/images/save.png'), u"&保存", self) self.saveAct.setShortcuts(QtGui.QKeySequence.Save) self.saveAct.triggered.connect(self.save) self.saveAsAct = QtGui.QAction(u"&名前を付けて保存", self) self.saveAsAct.setShortcuts(QtGui.QKeySequence.SaveAs) self.saveAsAct.triggered.connect(self.saveAs) self.savePythonFileAct = QtGui.QAction(u"&Python &File出力", self) self.savePythonFileAct.triggered.connect(self.savePythonFile) self.saveXMLFileAct = QtGui.QAction(u"&XML &File 出力", self) self.saveXMLFileAct.triggered.connect(self.saveXMLFile) self.size10Act = QtGui.QAction("&10", self, checkable=True) self.size10Act.triggered.connect(self.set10FontSize) self.size12Act = QtGui.QAction("&12", self, checkable=True) self.size12Act.triggered.connect(self.set12FontSize) self.size24Act = QtGui.QAction("&24", self, checkable=True) self.size24Act.triggered.connect(self.set24FontSize) self.size48Act = QtGui.QAction("&48", self, checkable=True) self.size48Act.triggered.connect(self.set48FontSize) self.sizeGroup = QtGui.QActionGroup(self) self.sizeGroup.addAction(self.size10Act) self.sizeGroup.addAction(self.size12Act) self.sizeGroup.addAction(self.size24Act) self.sizeGroup.addAction(self.size48Act) self.size12Act.setChecked(True) self.pathAct = QtGui.QAction(u"&Path設定", self) self.pathAct.triggered.connect(self.setPath) self.moduleAct = QtGui.QAction(u"&インポートモジュール設定", self) self.moduleAct.triggered.connect(self.setModule) self.execStringAct = QtGui.QAction("&exec", self, checkable=True) self.execStringAct.triggered.connect(self.setExecString) self.fileMethodAct = QtGui.QAction("&file", self, checkable=True) self.fileMethodAct.triggered.connect(self.setFileMethod) self.execGroup = QtGui.QActionGroup(self) self.execGroup.addAction(self.execStringAct) self.execGroup.addAction(self.fileMethodAct) self.execStringAct.setChecked(True)
def generateContextMenu(self): self.popMenu = QtGui.QMenu(self) self.acSetAutoScale = QtGui.QAction('Autoscale', self) self.acSetAutoScale.setCheckable(True) self.acSetAutoScale.setChecked(True) self.popMenu.addAction(self.acSetAutoScale) self.acSetAutoScale.toggled.connect(self.setAutoscale) self.acSet3D = QtGui.QAction('3D', self) self.acSet3D.setCheckable(True) self.acSet3D.setChecked(False) self.popMenu.addAction(self.acSet3D) self.acgCM = QtGui.QActionGroup(self) self.CMmenu = QtGui.QMenu(self) self.CMmenu.setTitle('Colormaps') for cm in ("gray|red|green|blue|red white|green white|blue white|" + "cyan|magenta|cyan white|jet|" + "magenta white|hot|cyan hot|afmhot|bmg").split("|"): ac = QtGui.QAction(cm, self.acgCM) ac.triggered.connect(functools.partial(self.setCM, cm)) ac.setCheckable(True) if cm == self.cm: ac.setChecked(True) ip_methods = [ 'none', 'nearest', 'bilinear', 'bicubic', 'spline16', 'spline36', 'hanning', 'hamming', 'hermite', 'kaiser', 'quadric', 'catrom', 'gaussian', 'bessel', 'mitchell', 'sinc', 'lanczos' ] self.acgIP = QtGui.QActionGroup(self) for ip in ip_methods: ac = QtGui.QAction(ip, self.acgIP) ac.triggered.connect(functools.partial(self.setIP, ip)) ac.setCheckable(True) self.acgIP.addAction(ac) self.IPmenu = QtGui.QMenu(self) self.IPmenu.setTitle('Interpolation') self.IPmenu.addActions(self.acgIP.actions()) self.CMmenu.addActions(self.acgCM.actions()) self.popMenu.addSeparator() self.popMenu.addMenu(self.CMmenu) self.popMenu.addSeparator() self.popMenu.addMenu(self.IPmenu) self.acAsNewScan = QtGui.QAction("Use selection as new scan", self.popMenu) self.acAsNewScan.triggered.connect(self.onAsNewScan) self.acAsNewScan.setEnabled(False) self.popMenu.addSeparator() self.popMenu.addAction(self.acAsNewScan)
def connectActions(self): self.samplesLineEdit.editingFinished.connect( self.samplesChanged_Callback) self.samplesValidator = QtGui.QIntValidator(0, 2**16 - 1, self.samplesLineEdit) self.samplesLineEdit.setValidator(self.samplesValidator) self.portLineEdit.editingFinished.connect(self.portChanged_Callback) self.connectPushButton.pressed.connect(self.connectPressed_Callback) self.connectPushButton.clicked.connect(self.connectClicked_Callback) self.calibratePushButton.pressed.connect( self.calibratePressed_Callback) self.calibratePushButton.clicked.connect( self.calibrateClicked_Callback) self.measurePushButton.clicked.connect(self.measureClicked_Callback) self.measurePushButton.pressed.connect(self.measurePressed_Callback) self.actionSave.triggered.connect(self.saveFile_Callback) self.actionSave.setShortcut(QtCore.Qt.CTRL + QtCore.Qt.Key_S) self.actionAbout.triggered.connect(self.about_Callback) self.actionSave.setShortcut(QtCore.Qt.CTRL + QtCore.Qt.Key_A) self.modeActionGroup = QtGui.QActionGroup(self) self.modeActionGroup.addAction(self.actionStandardRGBLED) self.modeActionGroup.addAction(self.actionCustomLEDVerB) self.modeActionGroup.addAction(self.actionCustomLEDVerC) self.modeActionGroup.setExclusive(True) self.actionStandardRGBLED.setChecked(True) standardRgbLED_Callback = functools.partial(self.sensorMode_Callback, 'StandardRGBLED') self.actionStandardRGBLED.triggered.connect(standardRgbLED_Callback) customVerB_Callback = functools.partial(self.sensorMode_Callback, 'CustomLEDVerB') self.actionCustomLEDVerB.triggered.connect(customVerB_Callback) customVerC_Callback = functools.partial(self.sensorMode_Callback, 'CustomLEDVerC') self.actionCustomLEDVerC.triggered.connect(customVerC_Callback) self.significantDigitActionGroup = QtGui.QActionGroup(self) self.significantDigitActionGroup.setExclusive(True) self.significantDigitAction2Value = {} for i in constants.SIGNIFICANT_DIGITS_LIST: actionName = 'actionSignificantDigits{0}'.format(i) action = QtGui.QAction(self.menuSignificantDigits) action.setCheckable(True) action.setText('{0}'.format(i)) self.menuSignificantDigits.addAction(action) self.significantDigitActionGroup.addAction(action) if i == constants.DEFAULT_SIGNIFICANT_DIGIT_INDEX: action.setChecked(True) self.significantDigitAction2Value[action] = i
def updateWindowMenu(self): """ Update the `Window` menu. The `Window` menu is dynamic because its content is determined by the currently open views. Because the number of these views or its contents may vary at any moment we must update the `Window` menu every time it is open. For simplicity we don't keep track of changes in the menu content. Instead, we clean and create it from scratch every time it is about to show. """ # Clear the menu and rebuild it from scratch wmenu = self.window_menu wmenu.clear() window_actions = [ 'windowCascade', 'windowTile', 'windowRestoreAll', 'windowMinimizeAll', 'windowClose', 'windowCloseAll', 'windowSeparator' ] vitables.utils.addActions(wmenu, window_actions, self.gui_actions) windows_list = self.workspace.subWindowList() if not windows_list: return # Create actions for the existing views action_group = QtGui.QActionGroup(wmenu) wmenu.action_group = action_group counter = 1 for window in windows_list: title = window.windowTitle() if counter < 10: action = wmenu.addAction(u"&{0:d} {1}".format(counter, title)) wmenu.action_group.addAction(action) elif counter == 10: wmenu.addSeparator() submenu = wmenu.addMenu( translate('VTGUI', "&More...", 'A Windows submenu')) action_subgroup = QtGui.QActionGroup(submenu) elif counter < 36: atext = u"&{0} {1}".format(chr(counter + ord("@") - 10), title) action = submenu.addAction(atext) action_subgroup.addAction(action) self.window_mapper.setMapping(action, window) action.triggered.connect(self.window_mapper.map) action.setCheckable(True) if self.workspace.activeSubWindow() == window: action.setChecked(True) counter = counter + 1
def makePopupMenu(self, bookid): menu = QtGui.QMenu() if bookid: filename = self._db.getFilenameByBookId(bookid) group = QtGui.QActionGroup(menu) group.triggered.connect(self.on_group1_triggered) for program in self.programSettings.getPrograms(): if not program[1].isEmpty(): if program[0].isEmpty(): a = menu.addAction(program[1]) else: a = menu.addAction(program[0]) args = [ x.decode('utf8') for x in shlex.split( unicode(program[1]).encode('utf8')) ] program = args.pop(0) args = [arg.replace('%p', filename) for arg in args] a.program = program a.args = args group.addAction(a) groups = self._db.getGroupsBookNotIn(bookid) if groups: if not menu.isEmpty(): menu.addSeparator() menu2 = QtGui.QMenu(self.tr("Add to group"), menu) group2 = QtGui.QActionGroup(menu2) group2.triggered.connect(self.on_group2_triggered) for group in groups: a = menu2.addAction(group[1]) a.bookid = bookid a.groupid = group[0] group2.addAction(a) menu.addMenu(menu2) groups = self._db.getGroupsBookIn(bookid) if groups: if not menu.isEmpty(): menu.addSeparator() menu3 = QtGui.QMenu(self.tr("Remove from group"), menu) group3 = QtGui.QActionGroup(menu3) group3.triggered.connect(self.on_group3_triggered) for group in groups: a = menu3.addAction(group[1]) a.bookid = bookid a.groupid = group[0] group3.addAction(a) menu.addMenu(menu3) return menu
def create_menu_items_from_view(menu, items): # TODO: images & radio groups, for now only basic representation for item in items: if item.type is MenuItemView.COMMAND: it = QtGui.QAction(item.label, menu) QtCore.QObject.connect(it, QtCore.SIGNAL("triggered()"), item.command) menu.addAction(it) elif item.type is MenuItemView.CASCADE_MENU: men = QtGui.QMenu(item.label, menu) create_menu_items_from_view(men, item.items) menu.addMenu(men) elif item.type is MenuItemView.SEPARATOR: menu.addSeparator() elif item.type is MenuItemView.CHECKBUTTON: it = QtGui.QAction(item.label, menu) it.setCheckable(True) if item.checkbox: #TODO : isn't it checkbox_value instead of checkbox ? By the way the MenuItemView constructor doesn't store the checkbox_value passed to it it.setChecked(True) QtCore.QObject.connect(it, QtCore.SIGNAL("triggered()"), item.command) menu.addAction(it) elif item.type is MenuItemView.RADIOBUTTON: it = QtGui.QAction(item.label, menu) it.setCheckable(True) if item.checkbox: it.setChecked(True) QtCore.QObject.connect(it, QtCore.SIGNAL("triggered()"), item.command) elif item.type is MenuItemView.RADIOBUTTONGROUP: group = QtGui.QActionGroup(menu) create_menu_items_from_view(group, item.items) menu.addActions(group)
def loadFavourites(self): self.favouritesMenu.clear() self.favouritesListWidget.clear() if len(self.favouritesList) > 0: self.favouritesActionGroup = QtGui.QActionGroup(self) self.favouritesActionGroup.triggered.connect( self.favouriteActivated) for i in self.favouritesList: action = QtGui.QAction( QtGui.QIcon(os.path.join("Resources", "images", "star")), i, self) self.favouritesActionGroup.addAction(action) self.favouritesMenu.addAction(action) item = QtGui.QListWidgetItem(i.strip()) item.setToolTip(i) item.setSizeHint(QtCore.QSize(20, 20)) self.favouritesListWidget.addItem(item) self.favouritesMenu.addSeparator() self.favouritesMenu.addAction(self.manageFavAct) self.removeButton.setDisabled(False) else: action = QtGui.QAction("No Favourites", self) self.favouritesMenu.addAction(action) self.favouritesMenu.addAction(action) self.removeButton.setDisabled(True)
def __createContextMenu(self, widget): self.contextMenu = QtWidgets.QMenu(widget) self.propertyAction = self.contextMenu.addAction("Properties") # self.propertyAction.setEnabled(False) menu = self.contextMenu.addMenu("Class labels") group = QtWidgets.QActionGroup(widget, exclusive=True) self.classActions = list() for i in range(Parameters.NUMBER_SUPPORTED_CLASSES): action = group.addAction( QtWidgets.QAction("Class {0}".format(i + 1), widget, checkable=True)) self.classActions.append(action) menu.addAction(action) self.classActions[self.__classId].setChecked(True) self.contextMenu.addMenu(menu) self.contextMenu.addSeparator() self.excludeAction = self.contextMenu.addAction("Exclude Gaussian") self.convertAction = self.contextMenu.addAction("Convert to samples") self.deleteAction = self.contextMenu.addAction("Delete Gaussian")
def __init__(self, parent=None, script=None): super(MainWindow, self).__init__(parent) self.setWindowTitle("Pyctools graph editor") self.script_file = os.getcwd() ## file menu file_menu = self.menuBar().addMenu('File') file_menu.addAction('Load script', self.load_script, 'Ctrl+O') file_menu.addAction('Save script', self.save_script, 'Ctrl+S') file_menu.addSeparator() quit_action = QtGui.QAction('Quit', self) quit_action.setShortcuts(['Ctrl+Q', 'Ctrl+W']) quit_action.triggered.connect( QtGui.QApplication.instance().closeAllWindows) file_menu.addAction(quit_action) ## zoom menu zoom_menu = self.menuBar().addMenu('Zoom') zoom_menu.addAction('Zoom in', self.zoom_in, 'Ctrl++') zoom_menu.addAction('Zoom out', self.zoom_out, 'Ctrl+-') zoom_menu.addSeparator() self.zoom_group = QtGui.QActionGroup(self) for zoom in (25, 35, 50, 70, 100, 141, 200): action = QtGui.QAction('%d%%' % zoom, self) action.setCheckable(True) if zoom == 100: action.setChecked(True) action.setData(zoom) zoom_menu.addAction(action) self.zoom_group.addAction(action) self.zoom_group.triggered.connect(self.set_zoom) ## main application area self.setCentralWidget(QtGui.QWidget()) grid = QtGui.QGridLayout() grid.setColumnStretch(0, 1) self.centralWidget().setLayout(grid) # component list and network drawing area splitter = QtGui.QSplitter(self) splitter.setChildrenCollapsible(False) self.component_list = ComponentList(self) splitter.addWidget(self.component_list) self.network_area = NetworkArea(self) self.view = QtGui.QGraphicsView(self.network_area) self.view.setAcceptDrops(True) self.view.setDragMode(QtGui.QGraphicsView.RubberBandDrag) self.view.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOn) self.view.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOn) splitter.addWidget(self.view) splitter.setStretchFactor(1, 1) grid.addWidget(splitter, 0, 0, 1, 5) # buttons run_button = QtGui.QPushButton('run graph') run_button.clicked.connect(self.network_area.run_graph) grid.addWidget(run_button, 1, 3) stop_button = QtGui.QPushButton('stop graph') stop_button.clicked.connect(self.network_area.stop_graph) grid.addWidget(stop_button, 1, 4) # load initial script if script: script = os.path.abspath(script) self.set_window_title(script) self.network_area.load_script(script)
def __init__(self, param_info, widget_list, parent=None): """ QParameterEditorSelector(param_info: ParameterInfo, widget_list: list of widgets that conform to the parameter exploration widget interface. """ QtGui.QToolButton.__init__(self, parent) self._param_info = param_info self.type = param_info.spec.descriptor.name self.setAutoRaise(True) self.setToolButtonStyle(QtCore.Qt.ToolButtonTextOnly) self.setPopupMode(QtGui.QToolButton.InstantPopup) self.setText(unichr(0x25bc)) # Down triangle self.actionGroup = QtGui.QActionGroup(self) self._actions = [] for widget in widget_list: action = QtGui.QAction(widget.exploration_name, self.actionGroup) self._actions.append(action) aId = 0 for action in self.actionGroup.actions(): action.setCheckable(True) action.setData(aId) aId += 1 menu = QtGui.QMenu(self) menu.addActions(self.actionGroup.actions()) self.setMenu(menu)
def setupMenuTheme(self): # unfortunately Qt Designer doesn't support QActionGroup, we have to code it up actionTitleShortcuts = set() def actionTitle(title): shortcutFound = False ret = '' for c in title: l = c.lower() if not shortcutFound and l in 'abcdefghijklmnopqrstuvwxy' and l not in actionTitleShortcuts: ret += '&' actionTitleShortcuts.add(l) shortcutFound = True ret += c return ret self.uiMenuThemeGroup = QtGui.QActionGroup(self.uiThemeMenu, exclusive=True) self.uiDarkThemeAct = QtGui.QAction(actionTitle("Dark Orange"), self) self.uiDarkThemeAct.setCheckable(True) self.uiDarkThemeAct.toggled.connect(ColorTheme.setDarkTheme) self.uiThemeMenu.addAction(self.uiMenuThemeGroup.addAction(self.uiDarkThemeAct)) for k in QtGui.QStyleFactory.keys(): act = QtGui.QAction(actionTitle(k), self) act.setCheckable(True) act.toggled.connect(self.setStyleCallback(k)) self.uiThemeMenu.addAction(self.uiMenuThemeGroup.addAction(act)) cleanname = self.buildInStyleToActionName(k) setattr(self, cleanname, act) self.uiCustomQssFileAct = QtGui.QAction(actionTitle("Custom Qss stylesheet"), self) self.uiCustomQssFileAct.triggered.connect(self.setCustomQss) self.uiThemeMenu.addAction(self.uiCustomQssFileAct)
def createMenu(self): self.actionDateiOeffnen = QtGui.QAction(self.tr(u"Datei öffnen..."), self) self.actionDateiSpeichern = QtGui.QAction(self.tr(u"Speichern"), self) self.actionBeenden = QtGui.QAction(self.tr(u"Beenden"), self) self.actionBeenden.setMenuRole(QtGui.QAction.QuitRole) menuDatei = self.menuBar().addMenu(self.tr(u"Datei")) menuDatei.addAction(self.actionDateiOeffnen) menuDatei.addAction(self.actionDateiSpeichern) actiongroupAnsichten = QtGui.QActionGroup(self) #self.actionLinksAusrichten = QtGui.QAction(self.tr(u"Links Ausrichten"), self) self.actionLinksAusrichten = QtGui.QAction( self.tr(u"Links Ausrichten"), actiongroupAnsichten) self.actionLinksAusrichten.setCheckable(True) self.actionLinksAusrichten.setChecked(True) #self.actionRechtsAusrichten = QtGui.QAction(self.tr(u"Rechts Ausrichten"), self) self.actionRechtsAusrichten = QtGui.QAction( self.tr(u"Rechts Ausrichten"), actiongroupAnsichten) self.actionRechtsAusrichten.setCheckable(True) actiongroupAnsichten.setExclusive(False) menuAnsicht = menuDatei.addMenu(self.tr(u"Ansicht")) menuAnsicht.addAction(self.actionLinksAusrichten) menuAnsicht.addAction(self.actionRechtsAusrichten) menuDatei.addSeparator() menuDatei.addAction(self.actionBeenden) self.actionUeber = QtGui.QAction(self.tr(u"Über Hallo Welt..."), self) menuUeber = self.menuBar().addMenu(self.tr(u"Hilfe")) menuUeber.addAction(self.actionUeber)
def setupMenuBar(self): self.fileMenu = self.menuBar().addMenu(self.tr("&File")) self.dateFormatMenu = self.fileMenu.addMenu(self.tr("&Date format")) self.dateFormatGroup = QtGui.QActionGroup(self) for f in self.dateFormats: action = QtGui.QAction(f, self, checkable = True, triggered = self.changeDateFormat) self.dateFormatGroup.addAction(action) self.dateFormatMenu.addAction(action) if f == self.currentDateFormat: action.setChecked(True) self.fileMenu.addAction(self.printAction) self.fileMenu.addAction(self.exitAction) self.cellMenu = self.menuBar().addMenu(self.tr("&Cell")) self.cellMenu.addAction(self.cell_addAction) self.cellMenu.addAction(self.cell_subAction) self.cellMenu.addAction(self.cell_mulAction) self.cellMenu.addAction(self.cell_divAction) self.cellMenu.addAction(self.cell_sumAction) self.cellMenu.addSeparator() self.cellMenu.addAction(self.colorAction) self.cellMenu.addAction(self.fontAction) self.menuBar().addSeparator() self.aboutMenu = self.menuBar().addMenu(self.tr("&Help")) self.aboutMenu.addAction(self.aboutSpreadSheet)
def __init__(self, initial_tab_width=None, label_text=None, onChanged=None, *args): """Create tab width menu. @param label_text: text for label. @param onChanged: callback to processing tab width change. """ QtGui.QMenu.__init__(self, *args) self.onChanged = onChanged if onChanged is None: self.onChanged = lambda settabwidth: None self.setTitle(label_text) self.action_group = QtGui.QActionGroup(self) self.tabwidth_actions = {} for tabwidth in range(MIN_TAB_WIDTH, MAX_TAB_WIDTH + 1): action = QtGui.QAction(str(tabwidth), self.action_group) action.setCheckable(True) action.setData(QtCore.QVariant(tabwidth)) self.addAction(action) self.tabwidth_actions[tabwidth] = action self._tabwidth = None self._has_separator = False self.connect(self, QtCore.SIGNAL("triggered(QAction *)"), self.triggered) if initial_tab_width is not None: self.setTabWidth(initial_tab_width) self.triggered(self.tabwidth_actions[initial_tab_width])
def createActions(self): self.addImagesAct = QtGui.QAction("&Add Images...", self, shortcut="Ctrl+A", triggered=self.addImage) self.removeAllImagesAct = QtGui.QAction("&Remove All Images", self, shortcut="Ctrl+R", triggered=self.removeAllImages) self.exitAct = QtGui.QAction("&Quit", self, shortcut="Ctrl+Q", triggered=self.close) self.styleActionGroup = QtGui.QActionGroup(self) for styleName in QtGui.QStyleFactory.keys(): action = QtGui.QAction(self.styleActionGroup, text="%s Style" % styleName, checkable=True, triggered=self.changeStyle) action.setData(styleName) self.guessModeStateAct = QtGui.QAction("&Guess Image Mode/State", self, checkable=True, checked=True) self.aboutAct = QtGui.QAction("&About", self, triggered=self.about) self.aboutQtAct = QtGui.QAction("About &Qt", self, triggered=QtGui.qApp.aboutQt)
def createMenu(self): self.actionDateiOeffnen = QtGui.QAction(self.tr("Open File..."), self) self.actionDateiSpeichern = QtGui.QAction(self.tr("Save"), self) self.actionBeenden = QtGui.QAction(self.tr("Quit"), self) self.actionBeenden.setMenuRole(QtGui.QAction.QuitRole) menuDatei = self.menuBar().addMenu(self.tr("File")) menuDatei.addAction(self.actionDateiOeffnen) menuDatei.addAction(self.actionDateiSpeichern) actiongroupAnsichten = QtGui.QActionGroup(self) #self.actionLinksAusrichten = QtGui.QAction(self.tr("Align Left"), self) self.actionLinksAusrichten = QtGui.QAction(self.tr("Align Left"), actiongroupAnsichten) self.actionLinksAusrichten.setCheckable(True) self.actionLinksAusrichten.setChecked(True) #self.actionRechtsAusrichten = QtGui.QAction(self.tr("Align Right"), self) self.actionRechtsAusrichten = QtGui.QAction(self.tr("Align Right"), actiongroupAnsichten) self.actionRechtsAusrichten.setCheckable(True) actiongroupAnsichten.setExclusive(True) menuAnsicht = menuDatei.addMenu(self.tr("View")) menuAnsicht.addAction(self.actionLinksAusrichten) menuAnsicht.addAction(self.actionRechtsAusrichten) menuDatei.addSeparator() menuDatei.addAction(self.actionBeenden) self.actionUeber = QtGui.QAction(self.tr(u"About Hello World..."), self) menuUeber = self.menuBar().addMenu(self.tr(u"Help")) menuUeber.addAction(self.actionUeber)
def _update_fft_frame_menu(self): """ Initializes the menu that selects the frame to show in the fft filter panel. """ self.fft_frame_menu.clear() fft_frames = QtGui.QActionGroup(self) selections = [-2, -1] + list(self.image.valid_frames_id) #if the default frame is no more present set the average as preselected if self.defaults.fft_frame_n in selections: active = self.defaults.fft_frame_n else: active = -1 for frame_n in selections: #"no frame" and "average frame" are codified in the ImageLab class, #other frames are codified by their id if frame_n == -2: name = "None" elif frame_n == -1: name = "Average" else: name = str(frame_n) act = QtGui.QAction(name, self) act.triggered.connect(partial(self._select_fft_frame, frame_n)) act.setCheckable(True) if frame_n == active: act.setChecked(True) fft_frames.addAction(act) self.fft_frame_menu.addActions(fft_frames.actions())
def __init__(self, initial_encoding=None, label_text=None, onChanged=None, *args): """Create widget: label + combobox. @param initial_encoding: initially selected encoding (default: utf-8). @param label_text: text for label (default: "Encoding:"). @param onChanged: callback to processing encoding change. @param args: additional arguments to initialize QWidget. """ QtGui.QMenu.__init__(self, *args) self.init_encodings(initial_encoding) self.onChanged = onChanged if onChanged is None: self.onChanged = lambda encoding: None self.setTitle(label_text) self.action_group = QtGui.QActionGroup(self) self.encoding_actions = {} for encoding in self.encodings: action = QtGui.QAction(encoding, self.action_group) action.setCheckable(True) action.setData(QtCore.QVariant(encoding)) self.addAction(action) self.encoding_actions[encoding] = action self._setEncoding(self.encoding) self.connect(self, QtCore.SIGNAL("triggered(QAction *)"), self.triggered)
def __init__(self, parent): QtGui.QWidget.__init__(self) self.tray = QtGui.QSystemTrayIcon(self) self.trayMenu = QtGui.QMenu() self.optionsMenu = QtGui.QMenu() self.optionsGroup = QtGui.QActionGroup(self) self.appWindow = parent self.action_quit = QtGui.QAction( QtGui.QIcon("../../data/gtk-quit.png"), u'Çık', self) self.action_options = QtGui.QAction( QtGui.QIcon("../../data/options.png"), u'Seçenekler', self) self.action_alwaysJoin = QtGui.QAction(u'Her Zaman', self) self.action_alwaysJoin.setCheckable(True) self.action_askToJoin = QtGui.QAction(u'Katılmadan Sor', self) self.action_askToJoin.setCheckable(True) self.action_rejectJoin = QtGui.QAction(u'Katılma', self) self.action_rejectJoin.setCheckable(True) self.trayMenu.addAction(self.action_options) self.trayMenu.addAction(self.action_quit) self.action_options.setMenu(self.optionsMenu) self.optionsGroup.addAction(self.action_alwaysJoin) self.optionsGroup.addAction(self.action_askToJoin) self.optionsGroup.addAction(self.action_rejectJoin) self.optionsMenu.addAction(self.action_alwaysJoin) self.optionsMenu.addAction(self.action_askToJoin) self.optionsMenu.addAction(self.action_rejectJoin) self.connect(self.action_quit, QtCore.SIGNAL("triggered()"), self.quit) self.connect(self.action_options, QtCore.SIGNAL("triggered()"), self.setActions) self.setDefaultOptions() self.connect(self.action_alwaysJoin, SIGNAL("triggered()"), self.setGlobalParticipation) self.connect(self.action_askToJoin, SIGNAL("triggered()"), self.setGlobalParticipation) self.connect(self.action_rejectJoin, SIGNAL("triggered()"), self.setGlobalParticipation) self.defaultIcon = QtGui.QIcon("../data/user_study.png") self.countIcon = QtGui.QIcon("") self.lastIcon = self.defaultIcon self.tray.setIcon(self.defaultIcon) self.tray.setContextMenu(self.trayMenu) self.tray.show() self.unread = 0 #number of updates self.tray.showMessage(u"User Study", u"There's a problem that I could not solve", QtGui.QSystemTrayIcon.Information, 8000) self.checkUpdates() self.tray.activated.connect(self.__activated)
def __init__(self, pType, parent=None): """ QParameterEditorSelector(pType: str, parent: QWidget) -> QParameterEditorSelector Put a stacked widget and a popup button """ QtGui.QToolButton.__init__(self, parent) self.type = pType self.setAutoRaise(True) self.setToolButtonStyle(QtCore.Qt.ToolButtonTextOnly) menu = QtGui.QMenu(self) self.setPopupMode(QtGui.QToolButton.InstantPopup) if pType == 'String': self.setText(QtCore.QString(QtCore.QChar(0x25bc))) # Down triangle self.operationActionGroup = QtGui.QActionGroup(self) self.containAction = self.operationActionGroup.addAction('Contain') self.containAction.setCheckable(True) self.exactAction = self.operationActionGroup.addAction('Exact') self.exactAction.setCheckable(True) self.regAction = self.operationActionGroup.addAction('Reg Exp') self.regAction.setCheckable(True) menu.addActions(self.operationActionGroup.actions()) menu.addSeparator() self.caseActionGroup = QtGui.QActionGroup(self) self.sensitiveAction = self.caseActionGroup.addAction( 'Case Sensitive') self.sensitiveAction.setCheckable(True) self.insensitiveAction = self.caseActionGroup.addAction( 'Case Insensitive') self.insensitiveAction.setCheckable(True) menu.addActions(self.caseActionGroup.actions()) else: self.setText('') # Down triangle self.operationActionGroup = QtGui.QActionGroup(self) self.expAction = self.operationActionGroup.addAction('Expression') self.expAction.setCheckable(True) self.setEnabled(False) self.setMenu(menu)
def onImageSceneContext(self, imageScene, pos): menu = QtGui.QMenu('Labeling menu', self) labelList = [] volumeLabel = self.volumeEditor.labelWidget.volumeLabelDescriptions act = menu.addAction("Labels") act.setEnabled(False) font = QtGui.QFont( "Helvetica", 10, QtGui.QFont.Bold, True) act.setFont(font) for index, item in enumerate(volumeLabel): labelColor = QtGui.QColor.fromRgb(long(item.color)) labelIndex = item.number labelName = item.name pixmap = QtGui.QPixmap(16, 16) pixmap.fill(labelColor) icon = QtGui.QIcon(pixmap) act = QtGui.QAction(icon, labelName, menu) i = imageScene.volumeEditor.labelWidget.listWidget.model().index(labelIndex-1,0) # print self.volumeEditor.labelView.selectionModel() imageScene.connect(act, QtCore.SIGNAL("triggered()"), lambda i=i: imageScene.onContextSetLabel(i)) labelList.append(menu.addAction(act)) if imageScene.drawManager.erasing is False: eraseAct = QtGui.QAction("Enable eraser", menu) menu.addAction(eraseAct) imageScene.connect(eraseAct, QtCore.SIGNAL("triggered()"), lambda: imageScene.drawManager.toggleErase()) else: eraseAct = QtGui.QAction("Disable eraser", menu) menu.addAction(eraseAct) imageScene.connect(eraseAct, QtCore.SIGNAL("triggered()"), lambda: imageScene.drawManager.toggleErase()) menu.addSeparator() # brushM = labeling.addMenu("Brush size") brushGroup = QtGui.QActionGroup(self) act = menu.addAction("Brush Sizes") act.setEnabled(False) font = QtGui.QFont( "Helvetica", 10, QtGui.QFont.Bold, True) act.setFont(font) menu.addSeparator() defaultBrushSizes = [(1, ""), (3, " Tiny"),(5, " Small"),(7, " Medium"),(11, " Large"),(23, " Huge"),(31, " Megahuge"),(61, " Gigahuge")] brush = [] for ind, bSizes in enumerate(defaultBrushSizes): b = bSizes[0] desc = bSizes[1] act = QtGui.QAction(" " + str(b) + desc, brushGroup) act.setCheckable(True) imageScene.connect(act, QtCore.SIGNAL("triggered()"), lambda b=b: imageScene.drawManager.setBrushSize(b)) if b == imageScene.drawManager.getBrushSize(): act.setChecked(True) brush.append(menu.addAction(act)) action = menu.exec_(QtGui.QCursor.pos())
def __init__(self, parent=None, standardActions=DefaultActions, **kwargs): super().__init__(parent, **kwargs) self.__standardActions = standardActions self.__actions = {} self.__tools = {} self.__viewBox = None self.__currentTool = None self.__toolgroup = QtGui.QActionGroup(self, exclusive=True) def on_toolaction(action): tool = action.property("tool") if self.__currentTool is not None: self.__currentTool.setViewBox(None) self.__currentTool = tool if tool is not None: tool.setViewBox(self.__viewBox) self.__viewBox.setCursor(tool.cursor) self.__toolgroup.triggered[QtGui.QAction].connect(on_toolaction) def icon(name): path = "icons/Dlg_{}.png".format(name) path = pkg_resources.resource_filename(widget.__name__, path) return QtGui.QIcon(path) isfirsttool = True for flag in PlotToolBox.StandardActions: if standardActions & flag: _text, _iconname, _keyseq = self.ActionData[flag] action = QtGui.QAction( _text, self, icon=icon(_iconname), shortcut=QtGui.QKeySequence(_keyseq) ) self.__actions[flag] = action if flag & PlotToolBox.ExclusiveMask: action.setCheckable(True) self.__toolgroup.addAction(action) if flag == self.SelectTool: tool = linproj.PlotSelectionTool(self) tool.cursor = Qt.ArrowCursor elif flag == self.ZoomTool: tool = linproj.PlotZoomTool(self) tool.cursor = Qt.ArrowCursor elif flag == self.PanTool: tool = linproj.PlotPanTool(self) tool.cursor = Qt.OpenHandCursor self.__tools[flag] = tool action.setProperty("tool", tool) if isfirsttool: action.setChecked(True) self.__currentTool = tool isfirsttool = False
def _create_actions(self): tabGroup = QtGui.QActionGroup(self) self.overviewAction = QtGui.QAction(QtGui.QIcon(':icons/overview.png'), _("&Overview"), self) self.overviewAction.setStatusTip(_("Show general overview of wallet")) self.overviewAction.setToolTip(self.overviewAction.statusTip()) self.overviewAction.setCheckable(True) self.overviewAction.setChecked(True) self.overviewAction.triggered.connect(self.show_normal_if_minimized) self.overviewAction.triggered.connect( lambda: self.centralWidget().setCurrentWidget(self.overviewpage)) tabGroup.addAction(self.overviewAction) self.sendAction = QtGui.QAction(QtGui.QIcon(':icons/send.png'), _("&Send"), self) self.sendAction.setStatusTip(_("Send coins to another address")) self.sendAction.setToolTip(self.sendAction.statusTip()) self.sendAction.setCheckable(True) self.sendAction.triggered.connect(self.show_normal_if_minimized) self.sendAction.triggered.connect( lambda: self.centralWidget().setCurrentWidget(self.sendpage)) tabGroup.addAction(self.sendAction) self.chatAction = QtGui.QAction(QtGui.QIcon(':icons/chat.png'), _("&Chat"), self) self.chatAction.setStatusTip(_("Show chromaclub chat")) self.chatAction.setToolTip(self.chatAction.statusTip()) self.chatAction.setCheckable(True) self.chatAction.triggered.connect(self.show_normal_if_minimized) self.chatAction.triggered.connect( lambda: self.centralWidget().setCurrentWidget(self.chatpage)) tabGroup.addAction(self.chatAction) self.openChromaWalletAction = QtGui.QAction( QtGui.QIcon(':icons/chromawallet.png'), _("Open current wallet in ChromaWallet"), self) self.openChromaWalletAction.setStatusTip( _("Open current wallet in ChromaWallet")) self.openChromaWalletAction.setToolTip( self.openChromaWalletAction.statusTip()) self.openChromaWalletAction.triggered.connect(self._open_chromawallet) self.quitAction = QtGui.QAction(QtGui.QIcon(':icons/exit.png'), _("E&xit"), self) self.quitAction.setStatusTip(_("Quit application")) self.quitAction.setToolTip(self.quitAction.statusTip()) self.quitAction.setShortcut( QtGui.QKeySequence(QtCore.Qt.CTRL + QtCore.Qt.Key_Q)) self.quitAction.setMenuRole(QtGui.QAction.QuitRole) self.quitAction.triggered.connect(self._app.quit) self.toggleHideAction = QtGui.QAction( QtGui.QIcon(':icons/chromaclub.png'), _("&Show / Hide"), self) self.toggleHideAction.setStatusTip(_("Show or hide the main Window")) self.toggleHideAction.triggered.connect( lambda *args: self.show_normal_if_minimized(* (list(args) + [True])))
def createActions(self): ''' Создание действий к кнопкам ''' self.setingsAct = QtGui.QAction(u"&Настройки", self, shortcut="Ctrl+P", statusTip=u"Настройки приложения", triggered=self.configWindow) self.exitAct = QtGui.QAction(u"&Выход", self, shortcut="Ctrl+Q", statusTip=u"Выход из приложения", triggered=self.close) self.aboutAct = QtGui.QAction( u"&О программе", self, shortcut="F1", statusTip=u"Показать информацию о программе", triggered=self.about) self.aboutQtAct = QtGui.QAction( u"О &PyQt4", self, statusTip=u"Показать информацию о библиотеке Qt4", triggered=QtGui.qApp.aboutQt) self.chatAct = QtGui.QAction(u"Рассылка в &чат", self, checkable=True, shortcut="Ctrl+1", statusTip=u"Запуск рассылки в чат", triggered=self.menuModeSelected) self.admAct = QtGui.QAction(u"Рассылка &поклонникам", self, checkable=True, shortcut="Ctrl+2", statusTip=u"Запуск рассылки поклонникам", triggered=self.menuModeSelected) self.runAct = QtGui.QAction(u"&Старт", self, shortcut="Ctrl+Enter", statusTip=u"Запуск рассылки", triggered=self.on_start) self.stopAct = QtGui.QAction(u"&Стоп", self, shortcut="Escape", statusTip=u"Остановка рассылки", triggered=self.on_stop) self.actionGroup = QtGui.QActionGroup(self) self.actionGroup.addAction(self.chatAct) self.actionGroup.addAction(self.admAct) self.admAct.setChecked(True)
def viewActionGroup(self): """ viewActionGroup() -> None A group for all view actions in order to have only one selected at a time """ if not hasattr(self, '_viewActionGroup'): self._viewActionGroup = QtGui.QActionGroup(self) return self._viewActionGroup
def initActions(self, actions): for key, actiondef in actions.items(): if isinstance(actiondef, dict): self.actions[key] = QtGui.QActionGroup(self) for gkey, gactiondef in actiondef.items(): self.initAction(gkey, gactiondef, self.actions[key]) self.actions[gkey].setCheckable(True) else: self.initAction(key, actiondef, self)
def cursorActionGroup(self): """ cursorActionGroup() -> None A group for all cursor actions in order to have only one selected at a time """ if not hasattr(self, '_cursorActionGroup'): self._cursorActionGroup = QtGui.QActionGroup(self) return self._cursorActionGroup
def _menu_for_measurement(a_measurement, parent): m = QtGui.QMenu(a_measurement.name, parent) g = QtGui.QActionGroup(m) for u in a_measurement.units: a = _action_for_unit(u, m) g.addAction(a) m.addAction(a) return m