def __init__(self, item: QListWidgetItem, parent: QWidget = None): super().__init__(parent) self.item = item self.opacity = QGraphicsOpacityEffect(self) self.setGraphicsEffect(self.opacity) layout = QHBoxLayout() self.setLayout(layout) self.position_label = QLabel() self.update_position_label() self.setToolTip(trans._("Click and drag to change call order")) self.plugin_name_label = QElidingLabel() self.plugin_name_label.setObjectName('small_text') self.plugin_name_label.setText(item.hook_implementation.plugin_name) plugin_name_size_policy = QSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.Preferred) plugin_name_size_policy.setHorizontalStretch(2) self.plugin_name_label.setSizePolicy(plugin_name_size_policy) self.function_name_label = QLabel( item.hook_implementation.function.__name__) self.enabled_checkbox = QCheckBox(self) self.enabled_checkbox.setToolTip( trans._("Uncheck to disable this plugin")) self.enabled_checkbox.stateChanged.connect(self._set_enabled) self.enabled_checkbox.setChecked( getattr(item.hook_implementation, 'enabled', True)) layout.addWidget(self.position_label) layout.addWidget(self.enabled_checkbox) layout.addWidget(self.function_name_label) layout.addWidget(self.plugin_name_label) layout.setStretch(2, 1) layout.setContentsMargins(0, 0, 0, 0)
def __init__(self, *args, **kwargs): super(BetterButtons, self).__init__(*args, **kwargs) # Setup axes reset button self.resetAxesBtn = QPushButton("Reset Axes") sizePolicy = QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(1) sizePolicy.setHeightForWidth( self.resetAxesBtn.sizePolicy().hasHeightForWidth()) self.resetAxesBtn.setSizePolicy(sizePolicy) self.resetAxesBtn.setObjectName("resetAxes") self.ui.gridLayout.addWidget(self.resetAxesBtn, 2, 1, 1, 1) self.resetAxesBtn.clicked.connect(self.autoRange) # Setup LUT reset button self.resetLUTBtn = QPushButton("Reset LUT") sizePolicy = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(1) sizePolicy.setHeightForWidth( self.resetLUTBtn.sizePolicy().hasHeightForWidth()) # self.resetLUTBtn.setSizePolicy(sizePolicy) # self.resetLUTBtn.setObjectName("resetLUTBtn") self.ui.gridLayout.addWidget(self.resetLUTBtn, 2, 2, 1, 1) self.resetLUTBtn.clicked.connect(self.autoLevels) # Hide ROI button and rearrange self.ui.roiBtn.setParent(None) self.ui.menuBtn.setParent(None) # self.ui.gridLayout.addWidget(self.ui.menuBtn, 1, 1, 1, 1) self.ui.gridLayout.addWidget(self.ui.graphicsView, 0, 0, 2, 1)
def __init__(self, *args, **kwargs): # Composes a new type consisting of any ImageItem types in imageItem_bases with this classes's helper ImageItem # class (LogScaleImageItem) self.imageItem_bases += (LogScaleImageItem, ) imageItem = type("DynamicImageItem", tuple(self.imageItem_bases), {})() if "imageItem" in kwargs: del kwargs["imageItem"] super(LogScaleIntensity, self).__init__(imageItem=imageItem, *args, **kwargs) self.logScale = True # Setup log scale button self.logIntensityButton = QPushButton("Log Intensity") sizePolicy = QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(1) sizePolicy.setHeightForWidth( self.logIntensityButton.sizePolicy().hasHeightForWidth()) self.logIntensityButton.setSizePolicy(sizePolicy) self.logIntensityButton.setObjectName("logIntensity") self.ui.gridLayout.addWidget(self.logIntensityButton, 3, 2, 1, 1) self.logIntensityButton.setCheckable(True) self.setLogScale(True) self.logIntensityButton.clicked.connect(self._setLogScale)
def __init__(self, *args, **kwargs): if kwargs.get("imageItem") and not isinstance(kwargs.get("imageItem"), LogScaleImageItem): raise RuntimeError( "The imageItem set to a LogScaleIntensity ImageView must be a LogScaleImageItem." ) kwargs["imageItem"] = LogScaleImageItem() super(LogScaleIntensity, self).__init__(*args, **kwargs) self.logScale = True # Setup log scale button self.logIntensityButton = QPushButton("Log Intensity") sizePolicy = QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(1) sizePolicy.setHeightForWidth( self.logIntensityButton.sizePolicy().hasHeightForWidth()) self.logIntensityButton.setSizePolicy(sizePolicy) self.logIntensityButton.setObjectName("logIntensity") self.ui.gridLayout.addWidget(self.logIntensityButton, 3, 2, 1, 1) self.logIntensityButton.setCheckable(True) self.setLogScale(True) self.logIntensityButton.clicked.connect(self._setLogScale)
def __init__(self, *args, **kwargs): super(BetterButtons, self).__init__(*args, **kwargs) # Setup axes reset button self.resetAxesBtn = QPushButton("Reset Axes") sizePolicy = QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(1) sizePolicy.setHeightForWidth( self.resetAxesBtn.sizePolicy().hasHeightForWidth()) self.resetAxesBtn.setSizePolicy(sizePolicy) self.resetAxesBtn.setObjectName("resetAxes") self.ui.right_layout.addWidget(self.resetAxesBtn) self.resetAxesBtn.clicked.connect(self.autoRange) # Setup LUT reset button self.resetLUTBtn = QPushButton("Reset LUT") sizePolicy = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(1) sizePolicy.setHeightForWidth( self.resetLUTBtn.sizePolicy().hasHeightForWidth()) # self.resetLUTBtn.setSizePolicy(sizePolicy) # self.resetLUTBtn.setObjectName("resetLUTBtn") self.ui.right_layout.addWidget(self.resetLUTBtn) self.resetLUTBtn.clicked.connect(self.autoLevels)
def __init__(self, parent): super(TitlebarDarwinButton, self).__init__(parent) self.setIconSize(QSize(15, 15)) self.setMinimumSize(QSize(15, 15)) self.setAutoFillBackground(True) self.setMouseTracking(True) sizepolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) sizepolicy.setHorizontalStretch(0) sizepolicy.setVerticalStretch(0) sizepolicy.setHeightForWidth(self.sizePolicy().hasHeightForWidth()) self.setSizePolicy(sizepolicy)
def __init__(self, *args, **kwargs): super(ExportButton, self).__init__(*args, **kwargs) # Export button self.exportBtn = QPushButton('Export') sizePolicy = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(1) sizePolicy.setHeightForWidth(self.exportBtn.sizePolicy().hasHeightForWidth()) self.ui.right_layout.addWidget(self.exportBtn) self.exportBtn.clicked.connect(self.export)
def __init__(self, *args, **kwargs): super(UiSmoothingDialog, self).__init__(*args, **kwargs) size_policy = QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum) size_policy.setHorizontalStretch(0) size_policy.setVerticalStretch(0) self.setSizePolicy(size_policy) # Dialog settings self.setWindowTitle("Smoothing Dialog") self.layout_vertical = QVBoxLayout(self) self.layout_horizontal = QHBoxLayout() self.layout_vertical.addLayout(self.layout_horizontal) # Define header selectors self.label_axis_mode = QLabel(self) self.combo_box_kernel = QComboBox(self) self.label_axis_mode.setText("Kernel") self.layout_horizontal.addWidget(self.label_axis_mode) self.layout_horizontal.addWidget(self.combo_box_kernel) self.layout_horizontal.setStretch(1, 1) # Define velocity self.group_box = QGroupBox(self) self.label_stddev = QLabel(self.group_box) self.line_edit_stddev = QLineEdit(self.group_box) self.group_box.setTitle("Parameters") self.label_stddev.setText("Standard Deviation") self.layout_horizontal_2 = QHBoxLayout(self.group_box) self.layout_horizontal_2.addWidget(self.label_stddev) self.layout_horizontal_2.addWidget(self.line_edit_stddev) self.layout_vertical.addWidget(self.group_box) # Add a spacer self.layout_vertical.addStretch(1) # Buttons self.button_box = QDialogButtonBox(self) self.button_box.setOrientation(Qt.Horizontal) self.button_box.setStandardButtons(QDialogButtonBox.Cancel | QDialogButtonBox.Ok) self.button_box.setObjectName("buttonBox") self.layout_vertical.addWidget(self.button_box) self.button_box.accepted.connect(self.accept) self.button_box.rejected.connect(self.reject)
def __init__(self, parent): super(ButtonsWidget, self).__init__(parent) self.setObjectName("buttonsWidget") self.setContentsMargins(0, 0, 0, 0) sizepolicy = QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Preferred) sizepolicy.setHorizontalStretch(0) sizepolicy.setVerticalStretch(0) sizepolicy.setHeightForWidth(self.sizePolicy().hasHeightForWidth()) self.setSizePolicy(sizepolicy) self.setStyleSheet("padding: 0px;") self.buttonsLayout = QHBoxLayout(self) self.buttonsLayout.setContentsMargins(0, 0, 0, 0) self.buttonsLayout.setSpacing(0) self.buttonsLayout.setAlignment(Qt.AlignVCenter) self.setLayout(self.buttonsLayout) if qrainbowstyle.USE_DARWIN_BUTTONS: self.btnMinimize = MinimizeDarwinButton(self) self.btnMaximize = MaximizeDarwinButton(self) self.btnRestore = RestoreDarwinButton(self) self.btnClose = CloseDarwinButton(self) else: self.btnMinimize = MinimizeWindowsButton(self) self.btnMaximize = MaximizeWindowsButton(self) self.btnRestore = RestoreWindowsButton(self) self.btnClose = CloseWindowsButton(self) if qrainbowstyle.ALIGN_BUTTONS_LEFT: self.buttonsLayout.addWidget(self.btnClose) if not qrainbowstyle.USE_DARWIN_BUTTONS: self.buttonsLayout.addWidget(self.btnRestore) self.buttonsLayout.addWidget(self.btnMinimize) self.buttonsLayout.addWidget(self.btnMaximize) else: self.buttonsLayout.addWidget(self.btnMinimize) self.buttonsLayout.addWidget(self.btnMaximize) if not qrainbowstyle.USE_DARWIN_BUTTONS: self.buttonsLayout.addWidget(self.btnRestore) self.buttonsLayout.addWidget(self.btnClose) self.btnMinimize.setObjectName("btnMinimize") self.btnMaximize.setObjectName("btnMaximize") if not qrainbowstyle.USE_DARWIN_BUTTONS: self.btnRestore.setObjectName("btnRestore") self.btnClose.setObjectName("btnClose") if qrainbowstyle.USE_DARWIN_BUTTONS: self.buttonsLayout.setSpacing(8)
def __init__(self, parent): super(TitlebarWindowsButton, self).__init__(parent) iconsize = QSize(45, 30) self.setIconSize(iconsize) self.setMinimumSize(iconsize) self.setText("") self.setEnabled(True) self.setAutoFillBackground(True) self.setChecked(False) self.setMouseTracking(True) sizepolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) sizepolicy.setHorizontalStretch(0) sizepolicy.setVerticalStretch(0) sizepolicy.setHeightForWidth(self.sizePolicy().hasHeightForWidth()) self.setSizePolicy(sizepolicy)
def __init__(self, parent=None): """ Init :param parent: """ from .ui.workspaceviewwidget import WorkspaceViewWidget QMainWindow.__init__(self) # set up self.setObjectName(_fromUtf8("MainWindow")) self.resize(1600, 1200) self.centralwidget = QWidget(self) self.centralwidget.setObjectName(_fromUtf8("centralwidget")) self.gridLayout = QGridLayout(self.centralwidget) self.gridLayout.setObjectName(_fromUtf8("gridLayout")) self.widget = WorkspaceViewWidget(self) sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Expanding) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.widget.sizePolicy().hasHeightForWidth()) self.widget.setSizePolicy(sizePolicy) self.widget.setObjectName(_fromUtf8("widget")) self.gridLayout.addWidget(self.widget, 1, 0, 1, 1) self.label = QLabel(self.centralwidget) self.label.setObjectName(_fromUtf8("label")) self.gridLayout.addWidget(self.label, 0, 0, 1, 1) self.setCentralWidget(self.centralwidget) self.menubar = QMenuBar(self) self.menubar.setGeometry(QtCore.QRect(0, 0, 1005, 25)) self.menubar.setObjectName(_fromUtf8("menubar")) self.setMenuBar(self.menubar) self.statusbar = QStatusBar(self) self.statusbar.setObjectName(_fromUtf8("statusbar")) self.setStatusBar(self.statusbar) self.toolBar = QToolBar(self) self.toolBar.setObjectName(_fromUtf8("toolBar")) self.addToolBar(QtCore.Qt.TopToolBarArea, self.toolBar) # self.retranslateUi(self) QtCore.QMetaObject.connectSlotsByName(self)
def setup_ui(self, enabled=True): self.v_lay = QVBoxLayout(self) self.v_lay.setContentsMargins(-1, 6, -1, 6) self.v_lay.setSpacing(0) self.row1 = QHBoxLayout() self.row1.setSpacing(6) self.enabled_checkbox = QCheckBox(self) self.enabled_checkbox.setChecked(enabled) self.enabled_checkbox.stateChanged.connect(self._on_enabled_checkbox) self.enabled_checkbox.setToolTip(trans._("enable/disable")) sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.enabled_checkbox.sizePolicy().hasHeightForWidth()) self.enabled_checkbox.setSizePolicy(sizePolicy) self.enabled_checkbox.setMinimumSize(QSize(20, 0)) self.enabled_checkbox.setText("") self.row1.addWidget(self.enabled_checkbox) self.plugin_name = QLabel(self) sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Minimum) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.plugin_name.sizePolicy().hasHeightForWidth()) self.plugin_name.setSizePolicy(sizePolicy) font15 = QFont() font15.setPointSize(15) self.plugin_name.setFont(font15) self.row1.addWidget(self.plugin_name) icon = QColoredSVGIcon.from_resources("warning") self.warning_tooltip = QtToolTipLabel(self) # TODO: This color should come from the theme but the theme needs # to provide the right color. Default warning should be orange, not # red. Code example: # theme_name = get_settings().appearance.theme # napari.utils.theme.get_theme(theme_name, as_dict=False).warning.as_hex() self.warning_tooltip.setPixmap( icon.colored(color="#E3B617").pixmap(15, 15)) self.warning_tooltip.setVisible(False) self.row1.addWidget(self.warning_tooltip) self.item_status = QLabel(self) self.item_status.setObjectName("small_italic_text") self.item_status.setSizePolicy(sizePolicy) self.row1.addWidget(self.item_status) self.row1.addStretch() self.package_name = QLabel(self) self.package_name.setAlignment(Qt.AlignRight | Qt.AlignTrailing | Qt.AlignVCenter) self.row1.addWidget(self.package_name) self.cancel_btn = QPushButton("cancel", self) self.cancel_btn.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) self.cancel_btn.setObjectName("remove_button") self.row1.addWidget(self.cancel_btn) self.update_btn = QPushButton(self) self.update_btn.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) self.update_btn.setObjectName("install_button") self.row1.addWidget(self.update_btn) self.update_btn.setVisible(False) self.help_button = QPushButton(self) self.action_button = QPushButton(self) sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.action_button.sizePolicy().hasHeightForWidth()) self.help_button.setSizePolicy(sizePolicy) self.action_button.setSizePolicy(sizePolicy) self.row1.addWidget(self.help_button) self.row1.addWidget(self.action_button) self.v_lay.addLayout(self.row1) self.row2 = QHBoxLayout() self.error_indicator = QPushButton() self.error_indicator.setObjectName("warning_icon") self.error_indicator.setCursor(Qt.PointingHandCursor) self.error_indicator.hide() self.row2.addWidget(self.error_indicator) self.row2.setContentsMargins(-1, 4, 0, -1) self.summary = QElidingLabel(parent=self) sizePolicy = QSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.summary.sizePolicy().hasHeightForWidth()) self.summary.setSizePolicy(sizePolicy) self.summary.setObjectName("small_text") self.row2.addWidget(self.summary) self.package_author = QLabel(self) sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.package_author.sizePolicy().hasHeightForWidth()) self.package_author.setSizePolicy(sizePolicy) self.package_author.setObjectName("small_text") self.row2.addWidget(self.package_author) self.v_lay.addLayout(self.row2)
def setup_ui(self): self.v_lay = QVBoxLayout(self) self.v_lay.setContentsMargins(-1, 8, -1, 8) self.v_lay.setSpacing(0) self.row1 = QHBoxLayout() self.row1.setSpacing(8) self.enabled_checkbox = QCheckBox(self) self.enabled_checkbox.setChecked(True) self.enabled_checkbox.setDisabled(True) self.enabled_checkbox.setToolTip(trans._("enable/disable")) sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.enabled_checkbox.sizePolicy().hasHeightForWidth()) self.enabled_checkbox.setSizePolicy(sizePolicy) self.enabled_checkbox.setMinimumSize(QSize(20, 0)) self.enabled_checkbox.setText("") self.row1.addWidget(self.enabled_checkbox) self.plugin_name = QLabel(self) sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Minimum) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.plugin_name.sizePolicy().hasHeightForWidth()) self.plugin_name.setSizePolicy(sizePolicy) font16 = QFont() font16.setPointSize(16) self.plugin_name.setFont(font16) self.row1.addWidget(self.plugin_name) self.package_name = QLabel(self) self.package_name.setAlignment(Qt.AlignRight | Qt.AlignTrailing | Qt.AlignVCenter) self.row1.addWidget(self.package_name) self.action_button = QPushButton(self) sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.action_button.sizePolicy().hasHeightForWidth()) self.action_button.setSizePolicy(sizePolicy) self.row1.addWidget(self.action_button) self.v_lay.addLayout(self.row1) self.row2 = QHBoxLayout() self.error_indicator = QPushButton() self.error_indicator.setObjectName("warning_icon") self.error_indicator.setCursor(Qt.PointingHandCursor) self.error_indicator.hide() self.row2.addWidget(self.error_indicator) self.row2.setContentsMargins(-1, 4, 0, -1) self.summary = ElidingLabel(parent=self) sizePolicy = QSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.summary.sizePolicy().hasHeightForWidth()) self.summary.setSizePolicy(sizePolicy) self.summary.setObjectName("small_text") self.row2.addWidget(self.summary) self.package_author = QLabel(self) sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.package_author.sizePolicy().hasHeightForWidth()) self.package_author.setSizePolicy(sizePolicy) self.package_author.setObjectName("small_text") self.row2.addWidget(self.package_author) self.v_lay.addLayout(self.row2)
def __init__(self, *args, **kwargs): super(UiTopAxisDialog, self).__init__(*args, **kwargs) self.setObjectName("Top Axis Dialog") size_policy = QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum) size_policy.setHorizontalStretch(0) size_policy.setVerticalStretch(0) self.setSizePolicy(size_policy) # Dialog settings self.setWindowTitle("Axis Settings") self.layout_vertical = QVBoxLayout(self) self.layout_horizontal = QHBoxLayout() self.layout_vertical.addLayout(self.layout_horizontal) # Define header selectors self.label_axis_mode = QLabel(self) self.combo_box_axis_mode = QComboBox(self) self.label_axis_mode.setText("Axis mode") self.layout_horizontal.addWidget(self.label_axis_mode) self.layout_horizontal.addWidget(self.combo_box_axis_mode) # Define velocity self.group_box_velocity = QGroupBox(self) self.label_reference_wavelength = QLabel(self.group_box_velocity) self.line_edit_reference_wavelength = QLineEdit( self.group_box_velocity) self.group_box_velocity.setTitle("Velocity parameters") self.label_reference_wavelength.setText("Reference wavelength") self.layout_horizontal_2 = QHBoxLayout(self.group_box_velocity) self.layout_horizontal_2.addWidget(self.label_reference_wavelength) self.layout_horizontal_2.addWidget(self.line_edit_reference_wavelength) self.layout_vertical.addWidget(self.group_box_velocity) # Define redshift self.group_box_redshift = QGroupBox(self) self.label_redshift = QLabel(self.group_box_redshift) self.line_edit_redshift = QLineEdit(self.group_box_redshift) self.group_box_redshift.setTitle("Redshift parameters") self.label_redshift.setText("Amount") self.layout_horizontal_3 = QHBoxLayout(self.group_box_redshift) self.layout_horizontal_3.addWidget(self.label_redshift) self.layout_horizontal_3.addWidget(self.line_edit_redshift) self.layout_vertical.addWidget(self.group_box_redshift) # Add a spacer self.layout_vertical.addStretch(1) # Buttons self.button_box = QDialogButtonBox(self) self.button_box.setOrientation(Qt.Horizontal) self.button_box.setStandardButtons(QDialogButtonBox.Cancel | QDialogButtonBox.Ok) self.button_box.setObjectName("buttonBox") self.layout_vertical.addWidget(self.button_box) self.button_box.accepted.connect(self.accept) self.button_box.rejected.connect(self.reject)
def __init__(self, model, *args, **kwargs): super(PlotWindow, self).__init__(*args, **kwargs) # The central widget of the sub window will be a main window so that it # can support having tab bars self._central_widget = QMainWindow() self.setWidget(self._central_widget) loadUi(os.path.join(UI_PATH, "plot_window.ui"), self._central_widget) # The central widget of the main window widget will be the plot self._model = model self._current_item_index = None self._plot_widget = PlotWidget(model=self._model) self._plot_widget.plotItem.setMenuEnabled(False) self._central_widget.setCentralWidget(self._plot_widget) # Add a menu to the plot options action _plot_options_button = self._central_widget.tool_bar.widgetForAction( self._central_widget.plot_options_action) _plot_options_button.setPopupMode(QToolButton.InstantPopup) self._plot_options_menu = QMenu(self._central_widget) _plot_options_button.setMenu(self._plot_options_menu) # Add the line color action self._change_color_action = QAction("Line Color") self._plot_options_menu.addAction(self._change_color_action) # Add the qtawesome icons to the plot-specific actions self._central_widget.linear_region_action.setIcon( qta.icon('fa.compress', color='black', color_active='orange')) self._central_widget.remove_region_action.setIcon( qta.icon('fa.compress', 'fa.trash', options=[{ 'scale_factor': 1 }, { 'color': 'red', 'scale_factor': 0.75, 'offset': (0.25, 0.25) }])) # self._main_window.rectangular_region_action.setIcon( # qta.icon('fa.square', # active='fa.legal', # color='black', # color_active='orange')) self._central_widget.plot_options_action.setIcon( qta.icon('fa.line-chart', active='fa.legal', color='black', color_active='orange')) self._central_widget.export_plot_action.setIcon( qta.icon('fa.download', active='fa.legal', color='black', color_active='orange')) spacer = QWidget() spacer.setFixedSize(self._central_widget.tool_bar.iconSize() * 2) self._central_widget.tool_bar.insertWidget( self._central_widget.plot_options_action, spacer) spacer = QWidget() size_policy = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Preferred) size_policy.setHorizontalStretch(1) spacer.setSizePolicy(size_policy) self._central_widget.tool_bar.addWidget(spacer) # Setup connections self._central_widget.linear_region_action.triggered.connect( self.plot_widget._on_add_linear_region) self._central_widget.remove_region_action.triggered.connect( self.plot_widget._on_remove_linear_region) self._change_color_action.triggered.connect(self._on_change_color)
def setup_ui(self): """Set up Ui of Context Menu.""" self.setStyleSheet(""" #{}{{ min-width:11.29em; }}""".format(self.objectName())) hbl = QHBoxLayout(self) btn = QPushButton(self.name, self) hbl.addWidget(btn) btn.setEnabled(True) btn.setAutoDefault(False) lbl = QLabel(self) hbl.addWidget(lbl) sz_pol = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Preferred) sz_pol.setHorizontalStretch(1) lbl.setSizePolicy(sz_pol) lbl.setMouseTracking(True) lbl.setAcceptDrops(True) lbl.setTextInteractionFlags(Qt.TextEditorInteraction) self.new_string_signal.connect(lbl.setText) menu = QMenu(btn) btn.setContextMenuPolicy(Qt.CustomContextMenu) btn.setMenu(menu) btn.clicked.connect(btn.showMenu) act = menu.addAction('Get From &File') act.setIcon(qta.icon('mdi.file-download-outline')) act.triggered.connect(self._load_orbit_from_file) act = menu.addAction('Get From &ServConf') act.setIcon(qta.icon('mdi.cloud-download-outline')) act.triggered.connect(self._load_orbit_from_servconf) menu2 = menu.addMenu('Get from &IOC') menu2.setIcon(qta.icon('mdi.download-network-outline')) if self._csorb.acc == 'SI': act = menu2.addAction('&SlowOrb') act.setIcon(qta.icon('mdi.turtle')) act.triggered.connect(_part(self._register_orbit, 'orb')) if self._csorb.isring: act = menu2.addAction('&MTurnOrb') act.setIcon(qta.icon('mdi.alarm-multiple')) act.triggered.connect(_part(self._register_orbit, 'mti')) act = menu2.addAction('S&PassOrb') act.setIcon(qta.icon('mdi.clock-fast')) act.triggered.connect(_part(self._register_orbit, 'sp')) act = menu2.addAction('&RefOrb') act.triggered.connect(_part(self._register_orbit, 'ref')) act = menu2.addAction('&OfflineOrb') act.setIcon(qta.icon('mdi.signal-off')) act.triggered.connect(_part(self._register_orbit, 'off')) act = menu2.addAction('&BPM Offsets') act.setIcon(qta.icon('mdi.currency-sign')) act.triggered.connect(_part(self._register_orbit, 'bpm')) act = menu2.addAction('RespMat') act.setIcon(qta.icon('mdi.matrix')) act.triggered.connect(self._open_matrix_sel) act = menu.addAction('&Edit Orbit') act.setIcon(qta.icon('mdi.table-edit')) act.triggered.connect(self._edit_orbit) if self._csorb.acc == 'SI': act = menu.addAction('Create &Bump') act.setIcon( qta.icon('mdi.chart-bell-curve', scale_factor=1.2, offset=(-0.2, 0.2))) act.triggered.connect(self._create_bump) act = menu.addAction('&Clear') act.setIcon(qta.icon('mdi.delete-empty')) act.triggered.connect(self._reset_orbit) act = menu.addAction('Save To File') act.setIcon(qta.icon('mdi.file-upload-outline')) act.triggered.connect(self._save_orbit_to_file) act = menu.addAction('Save To ServConf') act.setIcon(qta.icon('mdi.cloud-upload-outline')) act.triggered.connect(self._save_orbit_to_servconf)
def __init__(self, *args, **kwargs): super(MainWindow, self).__init__(*args, **kwargs) # Load the ui file and attached it to this instance loadUi(os.path.join(UI_PATH, "main_window.ui"), self) # Load editor ui files self._model_editor = QWidget() loadUi(os.path.join(UI_PATH, "model_editor.ui"), self._model_editor) self._model_editor.add_model_button.setIcon(qta.icon('fa.plus')) self._model_editor.remove_model_button.setIcon(qta.icon('fa.minus')) self._statistics = QWidget() loadUi(os.path.join(UI_PATH, "statistics.ui"), self._statistics) # Add spacers to the main tool bar spacer = QWidget() spacer.setFixedSize(self.tool_bar.iconSize() * 2) self.tool_bar.insertWidget(self.load_data_action, spacer) spacer = QWidget() spacer.setFixedSize(self.tool_bar.iconSize() * 2) self.tool_bar.insertWidget(self.new_plot_action, spacer) spacer = QWidget() size_policy = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Preferred) size_policy.setHorizontalStretch(1) spacer.setSizePolicy(size_policy) self.tool_bar.addWidget(spacer) # Setup plugin toolbar self._plugin_action_group = QActionGroup(self) self.model_editor_toggle.setActionGroup(self._plugin_action_group) self.statistics_toggle.setActionGroup(self._plugin_action_group) self.mask_editor_toggle.setActionGroup(self._plugin_action_group) # Hide the plugin dock initially self.plugin_dock.hide() # Create a default workspace self._workspace = Workspace() self.setCentralWidget(self._workspace) # Update title self.setWindowTitle(self._workspace.name + " — SpecViz") # Setup workspace action connections # We need to be careful here as if Specviz is embedded in another # Qt application, the QApplication instance won't have the add_workspace # method from ..app import Application app = QApplication.instance() if isinstance(app, Application): self.new_workspace_action.triggered.connect(app.add_workspace) self.new_plot_action.triggered.connect(self.workspace._on_new_plot) # Setup data action connections self.load_data_action.triggered.connect(self.workspace._on_load_data) self.delete_data_action.triggered.connect( self.workspace._on_delete_data) # Setup operations menu operations_button = self.tool_bar.widgetForAction( self.operations_action) operations_button.setPopupMode(QToolButton.InstantPopup) operations_menu = dict_to_menu( self, OrderedDict([('Smoothing', self.workspace._on_smoothing)])) operations_button.setMenu(operations_menu) # Setup plugin toolbar action actions self._plugin_action_group.triggered.connect( self._on_toggle_plugin_dock) self._last_toggled_action = None # Attach individual loading of editors to their actions self.model_editor_toggle.triggered.connect( lambda: self._on_editor_triggered(self.model_editor_toggle. objectName())) self.statistics_toggle.triggered.connect( lambda: self._on_editor_triggered(self.statistics_toggle. objectName())) self.mask_editor_toggle.triggered.connect( lambda: self._on_editor_triggered(self.mask_editor_toggle. objectName()))
def setup_ui(self, enabled=True): self.v_lay = QVBoxLayout(self) self.v_lay.setContentsMargins(-1, 6, -1, 6) self.v_lay.setSpacing(0) self.row1 = QHBoxLayout() self.row1.setSpacing(6) self.enabled_checkbox = QCheckBox(self) self.enabled_checkbox.setChecked(enabled) self.enabled_checkbox.stateChanged.connect(self._on_enabled_checkbox) self.enabled_checkbox.setToolTip(trans._("enable/disable")) sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.enabled_checkbox.sizePolicy().hasHeightForWidth() ) self.enabled_checkbox.setSizePolicy(sizePolicy) self.enabled_checkbox.setMinimumSize(QSize(20, 0)) self.enabled_checkbox.setText("") self.row1.addWidget(self.enabled_checkbox) self.plugin_name = QLabel(self) sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Minimum) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.plugin_name.sizePolicy().hasHeightForWidth() ) self.plugin_name.setSizePolicy(sizePolicy) font15 = QFont() font15.setPointSize(15) self.plugin_name.setFont(font15) self.row1.addWidget(self.plugin_name) self.item_status = QLabel(self) self.item_status.setObjectName("small_italic_text") self.item_status.setSizePolicy(sizePolicy) self.row1.addWidget(self.item_status) self.row1.addStretch() self.package_name = QLabel(self) self.package_name.setAlignment( Qt.AlignRight | Qt.AlignTrailing | Qt.AlignVCenter ) self.row1.addWidget(self.package_name) self.cancel_btn = QPushButton("cancel", self) self.cancel_btn.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) self.cancel_btn.setObjectName("remove_button") self.row1.addWidget(self.cancel_btn) self.update_btn = QPushButton(self) self.update_btn.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) self.update_btn.setObjectName("install_button") self.row1.addWidget(self.update_btn) self.update_btn.setVisible(False) self.help_button = QPushButton(self) self.action_button = QPushButton(self) sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.action_button.sizePolicy().hasHeightForWidth() ) self.help_button.setSizePolicy(sizePolicy) self.action_button.setSizePolicy(sizePolicy) self.row1.addWidget(self.help_button) self.row1.addWidget(self.action_button) self.v_lay.addLayout(self.row1) self.row2 = QHBoxLayout() self.error_indicator = QPushButton() self.error_indicator.setObjectName("warning_icon") self.error_indicator.setCursor(Qt.PointingHandCursor) self.error_indicator.hide() self.row2.addWidget(self.error_indicator) self.row2.setContentsMargins(-1, 4, 0, -1) self.summary = QElidingLabel(parent=self) sizePolicy = QSizePolicy( QSizePolicy.MinimumExpanding, QSizePolicy.Preferred ) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.summary.sizePolicy().hasHeightForWidth() ) self.summary.setSizePolicy(sizePolicy) self.summary.setObjectName("small_text") self.row2.addWidget(self.summary) self.package_author = QLabel(self) sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.package_author.sizePolicy().hasHeightForWidth() ) self.package_author.setSizePolicy(sizePolicy) self.package_author.setObjectName("small_text") self.row2.addWidget(self.package_author) self.v_lay.addLayout(self.row2)
def setupUi(self, config): self.map = GoogleMapsView(self, config.get("gmaps_key")) self.map.getHandler().markerDoubleClicked.connect( lambda bot_id, lat, lng: self.bot_double_clicked.emit( self.table_model.getDeviceById(int(bot_id)))) self.map.getHandler().markerClicked.connect(self.bot_clicked.emit) self.map.setObjectName("mapWidget") self.map.enableMarkersDragging(False) self.map.loadFinished.connect(self.load_finished.emit) self.bots_table = QTableView(self) self.bots_table.doubleClicked.connect(self.on_botTable_doubleClicked) self.bots_table.setObjectName("bots_table") self.bots_table.setAutoFillBackground(True) self.bots_table.setFrameShape(QFrame.StyledPanel) self.bots_table.setFrameShadow(QFrame.Sunken) self.bots_table.setVerticalScrollBarPolicy(Qt.ScrollBarAsNeeded) self.bots_table.setHorizontalScrollBarPolicy(Qt.ScrollBarAsNeeded) self.bots_table.setSizeAdjustPolicy( QAbstractScrollArea.AdjustToContents) self.bots_table.setVerticalScrollMode(QAbstractItemView.ScrollPerPixel) self.bots_table.setHorizontalScrollMode( QAbstractItemView.ScrollPerPixel) self.bots_table.setGridStyle(Qt.SolidLine) self.bots_table.horizontalHeader().setStretchLastSection(True) self.bots_table.setContextMenuPolicy(Qt.CustomContextMenu) hheader = self.bots_table.horizontalHeader() hheader.setDefaultSectionSize(150) hheader.setMinimumSectionSize(150) hheader.setMouseTracking(True) vheader = self.bots_table.verticalHeader() vheader.setCascadingSectionResizes(True) vheader.setDefaultSectionSize(35) vheader.setSortIndicatorShown(False) vheader.setStretchLastSection(False) vheader.setVisible(False) self.bots_table.setEditTriggers(QTableWidget.NoEditTriggers) self.bots_table.setSelectionMode(QAbstractItemView.ExtendedSelection) self.bots_table.setSelectionBehavior(QAbstractItemView.SelectRows) self.table_model = BotsTableModel(self) self.table_model.setObjectName("table_model") self.table_model.removed.connect(self.map.deleteMarker) self.bots_table.setModel(self.table_model) for i in range(self.table_model.columnCount()): self.bots_table.horizontalHeader().setSectionResizeMode( i, QHeaderView.Stretch) self.splitter = QSplitter(self) self.splitter.addWidget(self.map) self.splitter.addWidget(self.bots_table) self.splitter.setOrientation(Qt.Vertical) self.main_layout.addWidget(self.splitter) sizepolicy = QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum) sizepolicy.setHorizontalStretch(0) sizepolicy.setVerticalStretch(0) self.buttons_widget = QWidget(self) self.buttons_widget.setContentsMargins(0, 0, 0, 0) self.buttons_widgetLayout = QVBoxLayout(self.buttons_widget) self.buttons_widgetLayout.setContentsMargins(0, 0, 0, 0) self.buttons_widgetLayout.setAlignment(Qt.AlignTop) self.buttons_widget.setLayout(self.buttons_widgetLayout) self.payload_button = MainWindowButton(self.buttons_widget) self.payload_button.setToolTip("Create payload") self.payload_button.clicked.connect(self.payload_button_clicked.emit) self.payload_button.setIcon( QIcon( os.path.join(os.getcwd(), "resources/icons/3d-cube-sphere.svg"))) self.task_button = MainWindowButton(self.buttons_widget) self.task_button.setToolTip("Create tasks") self.task_button.clicked.connect(self.task_button_clicked.emit) self.task_button.setIcon( QIcon(os.path.join(os.getcwd(), "resources/icons/list-check.svg"))) self.disconnect_button = MainWindowButton(self.buttons_widget) self.disconnect_button.setToolTip("Kick") self.disconnect_button.setIcon( QIcon(os.path.join(os.getcwd(), "resources/icons/wifi-off.svg"))) self.terminate_button = MainWindowButton(self.buttons_widget) self.terminate_button.setToolTip("Terminate") self.terminate_button.setIcon( QIcon(os.path.join(os.getcwd(), "resources/icons/user-off.svg"))) self.close_button = MainWindowButton(self.buttons_widget) self.close_button.setToolTip("Close") self.close_button.clicked.connect(self.window().closeClicked.emit) self.close_button.setIcon( QIcon(os.path.join(os.getcwd(), "resources/icons/x.svg"))) self.buttons_widgetLayout.addWidget(self.payload_button) self.buttons_widgetLayout.addWidget(self.task_button) self.buttons_widgetLayout.addWidget(self.terminate_button) self.buttons_widgetLayout.addWidget(self.disconnect_button) self.buttons_widgetLayout.addStretch(1) self.buttons_widgetLayout.addWidget(self.close_button) self.main_layout.addWidget(self.buttons_widget)
def __init__(self, Form): """Initialization :param parent:ns """ # Initialize parent super(SliceViewWidget, self).__init__(Form) # set up the status self._is_setup = False self._xi = None self._yi = None self._zmatrix = None # set up the UI # main 2D graphics view self.setLayout(QGridLayout()) self.paintwidget = QWidget(self) self.paintwidget.setMinimumSize(800, 600) self.layout().addWidget(self.paintwidget, 0, 0, 1, 1) self.main_canvas = sliceviewwidgets.Qt4Mpl2DCanvas(self.paintwidget) ssizePolicy = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) ssizePolicy.setHorizontalStretch(1) ssizePolicy.setVerticalStretch(1) ssizePolicy.setHeightForWidth(self.paintwidget.sizePolicy().hasHeightForWidth()) self.paintwidget.setSizePolicy(ssizePolicy) self.paintwidget.setObjectName("graphicsVerticalView") # vertical slice self.vertical_widget = QWidget(self) self.vertical_widget.setMinimumSize(200, 600) self.layout().addWidget(self.vertical_widget, 0, 1, 1, 1) self.vertical_canvas = sliceviewwidgets.Qt4MplCanvasMultiFigure(self.vertical_widget, rotate=1) vsizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Expanding) vsizePolicy.setHorizontalStretch(0) vsizePolicy.setVerticalStretch(1) vsizePolicy.setHeightForWidth(True) vsizePolicy.setWidthForHeight(True) self.vertical_widget.setSizePolicy(vsizePolicy) self.vertical_widget.setSizePolicy(vsizePolicy) self.vertical_widget.setObjectName("graphicsVerticalView") # horizontal slice self.horizontal_widget = QWidget(self) self.horizontal_widget.setMinimumSize(800, 150) self.layout().addWidget(self.horizontal_widget, 1, 0, 1, 1) self.horizontal_canvas = sliceviewwidgets.Qt4MplCanvasMultiFigure(self.horizontal_widget) hsizePolicy = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.MinimumExpanding) hsizePolicy.setHorizontalStretch(1) hsizePolicy.setVerticalStretch(1) hsizePolicy.setHeightForWidth(True) hsizePolicy.setWidthForHeight(False) self.horizontal_widget.setSizePolicy(hsizePolicy) self.horizontal_widget.setSizePolicy(hsizePolicy) self.horizontal_widget.setObjectName("graphicsHorizontalView") # connect the events self.main_canvas.mpl_connect('button_press_event', self.on_mouse_press_event) self.main_canvas.mpl_connect('button_release_event', self.on_mouse_release_event) self.main_canvas.mpl_connect('motion_notify_event', self.on_mouse_move) # indicator self._indicator = IndicatorManager(self.main_canvas) # mouse state # NOTE: 0 = Not Pressed, 1 = left, 3 = right self._mouse_pressed = 0 return
def __init__(self, dock, title): super(Tab, self).__init__() # QWidget.__init__(self) self._clickPos = None self._dock = dock self._active = False self.setContextMenuPolicy(Qt.CustomContextMenu) self.customContextMenuRequested.connect(self._customContextMenu) self.layout = QHBoxLayout() self.layout.setContentsMargins(0, 0, 0, 0) self.setLayout(self.layout) self.titleLabel = QLabel() self.titleLabel.setText(title) self.titleLabel.setMinimumWidth(10) self.titleLabel.setContentsMargins(QMargins(5, 3, 5, 3)) size_policy_1 = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Preferred) size_policy_1.setHorizontalStretch(0) size_policy_1.setVerticalStretch(0) size_policy_1.setHeightForWidth( self.titleLabel.sizePolicy().hasHeightForWidth()) self.titleLabel.setSizePolicy(size_policy_1) self.layout.addWidget(self.titleLabel) self.close_button = QPushButton() size_policy_2 = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Preferred) size_policy_2.setHorizontalStretch(0) size_policy_2.setVerticalStretch(0) size_policy_2.setHeightForWidth( self.close_button.sizePolicy().hasHeightForWidth()) self.close_button.setSizePolicy(size_policy_2) self.layout.addWidget(self.close_button) self.close_button.clicked.connect(self._closeClick) self._style = """ Tab { background-color: #a0a0a1; border: 0px solid green; border-top-left-radius: 2px; border-top-right-radius: 2px; padding: 2px; } Tab[active="true"] { background-color: #475057; border: 0px solid green; border-top-left-radius: 2px; border-top-right-radius: 2px; padding: 2px; } Tab QLabel {color: #cecece; } Tab > QPushButton { background-color: transparent; border: 0px solid green; qproperty-icon: none; image: url(":/bench/close_1"); width: 18px; height: 18px; } Tab > QPushButton:hover { background-color: transparent; border: 0px solid green; qproperty-icon: none; image: url(":/bench/close"); width: 18px; height: 18px; } """ self.setStyleSheet(self._style) self.closeAction = QAction("Close", self) self.closeAction.triggered.connect(self._closeClick) self.dockProperties = QAction("Properties", self) self.dockProperties.triggered.connect(self._dockProperties)