def createActions(self): self.nameLabel = QLabel(self.mobile.name) self.nameLabel.setMinimumSize(80, 23) self.nameLabelAction = QWidgetAction(self) self.nameLabelAction.setDefaultWidget(self.nameLabel) self.addAction(self.nameLabelAction) self.enableAction = QAction("Enable Display", self) self.enableAction.setCheckable(True) self.enableAction.setChecked(True) icon = QIcon(':/plugins/PosiView/ledgrey.png') icon.addFile(':/plugins/PosiView/ledgreen.png', QSize(), QIcon.Normal, QIcon.On) self.enableAction.setIcon(icon) self.addAction(self.enableAction) self.enableAction.triggered.connect(self.onEnableClicked) self.enableAction.triggered.connect(self.mobile.setEnabled) self.addSeparator() self.posLabel = QLabel("--:--:-- 0.000000 0.000000\nd = 0.0") self.posLabel.setAlignment(Qt.AlignHCenter | Qt.AlignVCenter) self.posLabel.setMinimumSize(180, 23) self.posLabel.setStyleSheet('background: red; font-size: 8pt') self.posLabelAction = QWidgetAction(self) self.posLabelAction.setDefaultWidget(self.posLabel) self.addAction(self.posLabelAction) self.centerAction = QAction(QIcon(':/plugins/PosiView/center.png'), "Center &Map", self) self.addAction(self.centerAction) self.deleteTrackAction = QAction( QIcon(':/plugins/PosiView/deletetrack.png'), 'Delete &Track', self) self.addAction(self.deleteTrackAction) self.deleteTrackAction.triggered.connect(self.mobile.deleteTrack) self.centerAction.triggered.connect(self.mobile.centerOnMap)
def addSection(self, section): """ Adds a section to this menu. A section will create a label for the menu to separate sections of the menu out. :param section | <str> """ label = QLabel(section, self) label.setMinimumHeight(self.titleHeight()) # setup font font = label.font() font.setBold(True) # setup palette palette = label.palette() palette.setColor(palette.WindowText, palette.color(palette.Mid)) # setup label label.setFont(font) label.setAutoFillBackground(True) label.setPalette(palette) # create the widget action action = QWidgetAction(self) action.setDefaultWidget(label) self.addAction(action) return action
def __init__(self): QWidget.__init__(self) self._line_edit = ClearableLineEdit() self._calendar_button = QToolButton() self._calendar_button.setPopupMode(QToolButton.InstantPopup) self._calendar_button.setFixedSize(26, 26) self._calendar_button.setAutoRaise(True) self._calendar_button.setIcon(resourceIcon("calendar.png")) self._calendar_button.setStyleSheet( "QToolButton::menu-indicator { image: none; }") tool_menu = QMenu(self._calendar_button) self._calendar_widget = QCalendarWidget(tool_menu) action = QWidgetAction(tool_menu) action.setDefaultWidget(self._calendar_widget) tool_menu.addAction(action) self._calendar_button.setMenu(tool_menu) layout = QHBoxLayout() layout.setContentsMargins(0, 0, 0, 0) layout.addWidget(self._line_edit) layout.addWidget(self._calendar_button) self.setLayout(layout) self._calendar_widget.activated.connect(self.setDate)
def addContextMenuLabel(self, menu): label = QLabel("Actions for %s" % self.var.exp) label.setStyleSheet( "color:palette(light); background-color:palette(dark); margin-top:2px; margin-bottom:2px; margin-left:2px; margin-right:2px;" ) we = QWidgetAction(menu) we.setDefaultWidget(label) menu.addAction(we)
def on_view_horizontalHeader_sectionClicked(self, index): self.menu = QMenu(self) self.col = index data_unique = [] self.checkBoxs = [] self.checkBoxSelect = QCheckBox("Select all", self.menu) checkableAction = QWidgetAction(self.menu) checkableAction.setDefaultWidget(self.checkBoxSelect) self.menu.addAction(checkableAction) self.checkBoxSelect.setChecked(True) self.checkBoxSelect.stateChanged.connect(self.onSelect) for i in range(self.rowCount()): if not self.isRowHidden(i): item = self.item(i, index) if item.text() not in data_unique: data_unique.append(item.text()) checkBox = QCheckBox(item.text(), self.menu) checkBox.setChecked(True) checkBox.stateChanged.connect(self.onClickedElement) checkableAction = QWidgetAction(self.menu) checkableAction.setDefaultWidget(checkBox) self.menu.addAction(checkableAction) self.checkBoxs.append(checkBox) btn = QDialogButtonBox(QDialogButtonBox.Ok | QDialogButtonBox.Cancel, Qt.Horizontal, self.menu) btn.accepted.connect(self.menuClose) btn.rejected.connect(self.menu.close) checkableAction = QWidgetAction(self.menu) checkableAction.setDefaultWidget(btn) self.menu.addAction(checkableAction) headerPos = self.mapToGlobal(self.horizontalHeader.pos()) posY = headerPos.y() + self.horizontalHeader.height() posX = headerPos.x() + self.horizontalHeader.sectionPosition(index) self.menu.exec_(QPoint(posX, posY))
def _create_toolbar(self, color_maps): toolbar = QToolBar() toolbar.setFloatable(False) toolbar.setMovable(False) self._layout_combo = LayoutCombo() self._layout_combo_action = QWidgetAction(self._layout_combo) self._layout_combo_action.setDefaultWidget(self._layout_combo) toolbar.addAction(self._layout_combo_action) self._layout_combo.layout_changed.connect( self._slice_view_widget.set_plot_layout) # self._colormap_combo = ColormapCombo(['seismic', 'spectral', 'RdGy', 'hot', 'jet', 'gray']) self._colormap_combo = ColormapCombo(color_maps) self._colormap_combo.currentIndexChanged[int].connect( self._colormap_changed) toolbar.addWidget(self._colormap_combo) self._save_button = QToolButton() self._save_button.setToolTip("Save as image") self._save_button.setIcon(resource_icon("table_export.png")) self._save_button.clicked.connect(self._save_figure) toolbar.addWidget(self._save_button) self._settings_button = QToolButton() self._settings_button.setToolTip("Toggle settings visibility") self._settings_button.setIcon(resource_icon("cog.png")) self._settings_button.setCheckable(True) self._settings_button.toggled.connect(self._show_settings) toolbar.addWidget(self._settings_button) self._help_button = QToolButton() self._help_button.setToolTip("View help") self._help_button.setIcon(resource_icon("help.png")) self._help_button.setCheckable(True) self._help_button.toggled.connect(self._show_help) toolbar.addWidget(self._help_button) def toggle_on_close(event): self._settings_button.setChecked(False) event.accept() def toggle_on_close_help(event): self._help_button.setChecked(False) event.accept() self._settings_window.closeEvent = toggle_on_close self._help_window.closeEvent = toggle_on_close_help self._colormap_combo.setCurrentIndex(45) self.set_default_layout() return toolbar
def prepareContextMenu(self, menu): HtmlTemplateHandler.prepareContextMenu(self, menu) menu.addAction("Dereference %s" % self.var.exp, self.dereference) submenu = menu.addMenu("Show custom...") # we cannot construct the lineedit in our ctor since it will be automatically deleted once the menu is closed self.showCustomEdit = QLineEdit() self.showCustomEdit.returnPressed.connect(self.showCustom) self.showCustomEdit.setText("*(%s)" % self.var.exp) we = QWidgetAction(menu) we.setDefaultWidget(self.showCustomEdit) submenu.addAction(we)
def __init__(self, parent): QToolBar.__init__(self, parent) assert parent self.dock = parent # a fake spacer widget w = QWidget(self) l = QHBoxLayout(w) l.setMargin(0) l.setSpacing(0) l.addStretch() frame = QFrame() layout = QBoxLayout(QBoxLayout.LeftToRight, frame) layout.setContentsMargins(4, 4, 0, 0) layout.setSpacing(2) self.aDockFrame = self.addWidget(frame) self.__icon = QLabel() layout.addWidget(self.__icon) layout.addWidget(QLabel(self.dock.windowTitle())) self.dock.windowIconChanged.connect(self.__setWindowIcon) # fake spacer item spacer = QWidgetAction(self) spacer.setDefaultWidget(w) self.setMovable(False) self.setFloatable(False) self.setIconSize(QSize(12, 12)) self.aFloat = QAction(self) self.aClose = QAction(self) QToolBar.addAction(self, spacer) self.separator = QToolBar.addSeparator(self) QToolBar.addAction(self, self.aFloat) QToolBar.addAction(self, self.aClose) self.updateStandardIcons() self.dockWidgetFeaturesChanged(self.dock.features()) self.dock.featuresChanged.connect(self.dockWidgetFeaturesChanged) self.aFloat.triggered.connect(self._floatTriggered) self.aClose.triggered.connect(self.dock.close)
def __makeRunWithArgumentsMenu(self): self.__runWithArgumentsMenu = QMenu(self) self.__argumentsEdit = QLineEdit() self.__argumentsEdit.returnPressed.connect(self.__runWithArgumentsTriggered) hl = QHBoxLayout(self.__runWithArgumentsMenu) hl.addWidget(QLabel("Run with arguments:")) hl.addWidget(self.__argumentsEdit) w = QWidget(self.__runWithArgumentsMenu) w.setLayout(hl) wa = QWidgetAction(self.__runWithArgumentsMenu) wa.setDefaultWidget(w) self.__runWithArgumentsMenu.addAction(wa) self.act.Run.setMenu(self.__runWithArgumentsMenu)
def menuTitle(icon, text, parent): eventEater = EventEater() buttonaction = QAction(parent) font = buttonaction.font() font.setBold(True) buttonaction.setFont(font) buttonaction.setText(text) buttonaction.setIcon(icon) action = QWidgetAction(parent) action.setObjectName('trayMenuTitle') titleButton = QToolButton(parent) titleButton.installEventFilter(eventEater) titleButton.setDefaultAction(buttonaction) titleButton.setDown(True) titleButton.setToolButtonStyle(Qt.ToolButtonTextBesideIcon) action.setDefaultWidget(titleButton) return action
def TitledMenu(titles, padding=5, with_separator=True): """ :param title: the title for menu :param padding: the padding defaults to 5 px :param with_separator: if true adds a separator :return: the QMenu with a title """ menu = QMenu() for title in titles: label = QLabel(title) label.setStyleSheet( "padding: {}px; background-color: rgba(0, 0, 0, 0);".format( padding)) title_widget = QWidgetAction(menu) title_widget.setDefaultWidget(label) menu.addAction(title_widget) if with_separator: menu.addSeparator() return menu
def __init__(self, title, parent=None): QDialog.__init__(self, parent) self.setWindowTitle(title) self.setWindowFlags(self.windowFlags() & ~Qt.WindowContextHelpButtonHint) self.setWindowFlags(self.windowFlags() & ~Qt.WindowCloseButtonHint) self.setWindowFlags(self.windowFlags() & ~Qt.WindowCancelButtonHint) self._tab_map = {} self._tab_order = [] layout = QVBoxLayout() self._tabs = QTabWidget() layout.addWidget(self._tabs) layout.setSizeConstraint(QLayout.SetFixedSize) # not resizable!!! self._button_layout = QHBoxLayout() self._reset_button = QToolButton() self._reset_button.setIcon(util.resourceIcon("update.png")) self._reset_button.setToolTip("Reset all settings back to default") self._reset_button.clicked.connect(self.resetSettings) self._undo_button = QToolButton() self._undo_button.setIcon(util.resourceIcon("undo.png")) self._undo_button.setToolTip("Undo") self._undo_button.clicked.connect(self.undoSettings) self._redo_button = QToolButton() self._redo_button.setIcon(util.resourceIcon("redo.png")) self._redo_button.setToolTip("Redo") self._redo_button.clicked.connect(self.redoSettings) self._redo_button.setEnabled(False) self._copy_button = QToolButton() self._copy_button.setIcon(util.resourceIcon("page_copy.png")) self._copy_button.setToolTip("Copy settings from another key") self._copy_button.setPopupMode(QToolButton.InstantPopup) self._copy_button.setEnabled(False) tool_menu = QMenu(self._copy_button) self._popup_list = QListWidget(tool_menu) self._popup_list.setSortingEnabled(True) self._popup_list.itemClicked.connect(self.keySelected) action = QWidgetAction(tool_menu) action.setDefaultWidget(self._popup_list) tool_menu.addAction(action) self._copy_button.setMenu(tool_menu) self._apply_button = QPushButton("Apply") self._apply_button.setToolTip("Apply the new settings") self._apply_button.clicked.connect(self.applySettings) self._apply_button.setDefault(True) self._close_button = QPushButton("Close") self._close_button.setToolTip("Hide this dialog") self._close_button.clicked.connect(self.hide) self._button_layout.addWidget(self._reset_button) self._button_layout.addStretch() self._button_layout.addWidget(self._undo_button) self._button_layout.addWidget(self._redo_button) self._button_layout.addWidget(self._copy_button) self._button_layout.addStretch() self._button_layout.addWidget(self._apply_button) self._button_layout.addWidget(self._close_button) layout.addStretch() layout.addLayout(self._button_layout) self.setLayout(layout)
def __init__(self, parent=None): super(FilterClauseWidget, self).__init__(parent) self.setupUi(self) self._filterIndex = -1 self._filterType = FilterType.Include self._filterActionStatus = -1 self._siteCode = '' self._addIcon = QIcon(':/plugins/ark/filter/addFilter.svg') self._addAction = QAction(self._addIcon, 'Add filter', self) self._addAction.setStatusTip('Add filter') self._addAction.triggered.connect(self._addFilterClicked) self._removeIcon = QIcon(':/plugins/ark/filter/removeFilter.svg') self._removeAction = QAction(self._removeIcon, 'Remove filter', self) self._removeAction.setStatusTip('Remove filter') self._removeAction.triggered.connect(self._removeFilterClicked) self.setFilterAction(FilterWidgetAction.AddFilter) self._includeIcon = QIcon(':/plugins/ark/filter/includeFilter.png') self._includeAction = QAction(self._includeIcon, 'Include', self) self._includeAction.setStatusTip('Include items in selection') self._includeAction.setCheckable(True) self._includeAction.triggered.connect(self._includeFilterChecked) self._excludeIcon = QIcon(':/plugins/ark/filter/excludeFilter.png') self._excludeAction = QAction(self._excludeIcon, 'Exclude', self) self._excludeAction.setStatusTip('Exclude items from selection') self._excludeAction.setCheckable(True) self._excludeAction.triggered.connect(self._excludeFilterChecked) self._selectIcon = QIcon(':/plugins/ark/filter/selectFilter.svg') self._selectAction = QAction(self._selectIcon, 'Select', self) self._selectAction.setStatusTip('Select items') self._selectAction.setCheckable(True) self._selectAction.triggered.connect(self._selectFilterChecked) self._highlightIcon = QIcon(':/plugins/ark/filter/highlightFilter.svg') self._highlightAction = QAction(self._highlightIcon, 'Highlight', self) self._highlightAction.setStatusTip('Highlight items') self._highlightAction.setCheckable(True) self._highlightAction.triggered.connect(self._highlightFilterChecked) self._typeActionGroup = QActionGroup(self) self._typeActionGroup.addAction(self._includeAction) self._typeActionGroup.addAction(self._excludeAction) self._typeActionGroup.addAction(self._selectAction) self._typeActionGroup.addAction(self._highlightAction) self._colorTool = QgsColorButtonV2(self) self._colorTool.setAllowAlpha(True) self._colorTool.setColorDialogTitle('Choose Highlight Color') self._colorTool.setContext('Choose Highlight Color') self._colorTool.setDefaultColor(Application.highlightFillColor()) self._colorTool.setToDefaultColor() self._colorTool.colorChanged.connect(self._colorChanged) self._colorAction = QWidgetAction(self) self._colorAction.setDefaultWidget(self._colorTool) self._typeMenu = QMenu(self) self._typeMenu.addActions(self._typeActionGroup.actions()) self._typeMenu.addSeparator() self._typeMenu.addAction(self._colorAction) self.filterTypeTool.setMenu(self._typeMenu) self._setFilterType(FilterType.Include)
def __init__(self, title, parent=None, key=''): QDialog.__init__(self, parent) self.setWindowTitle(title) self._ert = ERT.ert """:type: res.enkf.enkf_main.EnKFMain""" self.key_manager = self._ert.getKeyManager() """:type: res.enkf.key_manager.KeyManager """ self.current_key = key self.setWindowFlags(self.windowFlags() & ~Qt.WindowContextHelpButtonHint) self.setWindowFlags(self.windowFlags() & ~Qt.WindowCloseButtonHint) self.setWindowFlags(self.windowFlags() & ~Qt.WindowCancelButtonHint) self._tab_map = {} self._tab_order = [] layout = QVBoxLayout() self._tabs = QTabWidget() layout.addWidget(self._tabs) layout.setSizeConstraint(QLayout.SetFixedSize) # not resizable!!! self._button_layout = QHBoxLayout() self._reset_button = QToolButton() self._reset_button.setIcon(resourceIcon("update.png")) self._reset_button.setToolTip("Reset all settings back to default") self._reset_button.clicked.connect(self.resetSettings) self._undo_button = QToolButton() self._undo_button.setIcon(resourceIcon("undo.png")) self._undo_button.setToolTip("Undo") self._undo_button.clicked.connect(self.undoSettings) self._redo_button = QToolButton() self._redo_button.setIcon(resourceIcon("redo.png")) self._redo_button.setToolTip("Redo") self._redo_button.clicked.connect(self.redoSettings) self._redo_button.setEnabled(False) self._copy_from_button = QToolButton() self._copy_from_button.setIcon(resourceIcon("copy_from.png")) self._copy_from_button.setToolTip("Copy settings from another key") self._copy_from_button.setPopupMode(QToolButton.InstantPopup) self._copy_from_button.setEnabled(False) self._copy_to_button = QToolButton() self._copy_to_button.setIcon(resourceIcon("copy_to.png")) self._copy_to_button.setToolTip("Copy current plot settings to other keys") self._copy_to_button.setPopupMode(QToolButton.InstantPopup) self._copy_to_button.clicked.connect(self.initiateCopyStyleToDialog) self._copy_to_button.setEnabled(True) tool_menu = QMenu(self._copy_from_button) self._popup_list = QListWidget(tool_menu) self._popup_list.setSortingEnabled(True) self._popup_list.itemClicked.connect(self.keySelected) action = QWidgetAction(tool_menu) action.setDefaultWidget(self._popup_list) tool_menu.addAction(action) self._copy_from_button.setMenu(tool_menu) self._apply_button = QPushButton("Apply") self._apply_button.setToolTip("Apply the new settings") self._apply_button.clicked.connect(self.applySettings) self._apply_button.setDefault(True) self._close_button = QPushButton("Close") self._close_button.setToolTip("Hide this dialog") self._close_button.clicked.connect(self.hide) self._button_layout.addWidget(self._reset_button) self._button_layout.addStretch() self._button_layout.addWidget(self._undo_button) self._button_layout.addWidget(self._redo_button) self._button_layout.addWidget(self._copy_from_button) self._button_layout.addWidget(self._copy_to_button) self._button_layout.addStretch() self._button_layout.addWidget(self._apply_button) self._button_layout.addWidget(self._close_button) layout.addStretch() layout.addLayout(self._button_layout) self.setLayout(layout)