def __init__(self, parent=None, show=True): Qt.QMainWindow.__init__(self, parent) # create the frame self.frame = Qt.QFrame() vlayout = Qt.QVBoxLayout() # add the pyvista interactor object self.plotter = QtInteractor(self.frame) vlayout.addWidget(self.plotter.interactor) self.frame.setLayout(vlayout) self.setCentralWidget(self.frame) # simple menu mainMenu = self.menuBar() fileMenu = mainMenu.addMenu('File') editMenu = mainMenu.addMenu('Edit') # opening a mesh file self.open_mesh_action = Qt.QAction('Open Mesh...', self) self.open_mesh_action.triggered.connect(self.open_mesh) fileMenu.addAction(self.open_mesh_action) # exit button exitButton = Qt.QAction('Exit', self) exitButton.setShortcut('Ctrl+Q') exitButton.triggered.connect(self.close) fileMenu.addAction(exitButton) # create cubic skeleton self.cubic_skeleton_action = Qt.QAction('Cubic Skeleton', self) self.cubic_skeleton_action.triggered.connect(self.cubic_skeleton) editMenu.addAction(self.cubic_skeleton_action) # Create voxelized model self.create_voxelized_model = Qt.QAction('Voxelize Model', self) self.create_voxelized_model.triggered.connect(self.voxelize_model) editMenu.addAction(self.create_voxelized_model) # split mesh based on max cube faces # self.max_cube_slice_action = Qt.QAction('Slice27', self) # self.cubic_skeleton_action.triggered.connect(self.max_cube_slice) # editMenu.addAction(self.max_cube_slice_action) if show: self.show() self.plotter.add_axes(interactive=None, line_width=2, color=None, x_color=None, y_color=None, z_color=None, xlabel='X', ylabel='Y', zlabel='Z', labels_off=False, box=None, box_args=None)
def __init__(self, parent=None): super().__init__(parent) self._layers = LayerList() self._layers.inserting.connect(self._on_inserting_into_layers) self._layers.removing.connect(self._on_removing_from_layers) self._layers.replacing.connect(self._on_replacing_in_layers) self._layers.replaced.connect(self._on_replaced_in_layers) self.layer_focus_changed.connect(self._on_layer_focus_changed) self._histogram_mask = None self._selection_model = None self.auto_min_max_all_action = Qt.QAction(self) self.auto_min_max_all_action.setText('Auto Min/Max') self.auto_min_max_all_action.setCheckable(True) self.auto_min_max_all_action.setChecked(True) # From the Qt docs: The triggered signal is emitted when an action is activated by the user; for example, when the user clicks a menu option, # toolbar button, or presses an action's shortcut key combination, or when trigger() was called. Notably, it is not emitted when setChecked() # or toggle() is called. self.auto_min_max_all_action.triggered.connect( self._on_master_enable_auto_min_max_triggered) # From the Qt docs: The toggled signal is emitted whenever a checkable action changes its isChecked() status. This can be the result of a user # interaction, or because setChecked() was called. self.auto_min_max_all_action.toggled.connect( self._on_master_enable_auto_min_max_toggled) self.solo_layer_mode_action = Qt.QAction(self) self.solo_layer_mode_action.setText('Solo Current Layer') self.solo_layer_mode_action.setCheckable(True) self.solo_layer_mode_action.setChecked(False) self.solo_layer_mode_action.setToolTip( 'Show only the currently selected layer') self.layers.append(layer.Layer())
def __init__(self, parent=None, show=True): Qt.QMainWindow.__init__(self, parent) self.frame = Qt.QFrame() vlayout = Qt.QVBoxLayout() self.vtk_widget = QtInteractor(self.frame) vlayout.addWidget(self.vtk_widget) self.frame.setLayout(vlayout) self.setCentralWidget(self.frame) mainMenu = self.menuBar() fileMenu = mainMenu.addMenu('File') exitButton = Qt.QAction('Exit', self) exitButton.setShortcut('Ctrl+Q') exitButton.triggered.connect(self.close) fileMenu.addAction(exitButton) meshMenu = mainMenu.addMenu('Mesh') self.add_sphere_action = Qt.QAction('Add Sphere', self) self.add_sphere_action.triggered.connect(self.add_sphere) meshMenu.addAction(self.add_sphere_action) if show: self.show()
def contextMenuEvent(self, event): self.menu = Qt.QMenu(self) row = self.currentRow() name = self.item(row, 0).text() self.menu.addAction(self.tr("{}").format(name)) removefromlistAction = Qt.QAction(self.tr("Remove from list"), self) removefromlistAction.setStatusTip( self.tr("Leave all files unaltered, useful for subaddons")) removefromlistAction.triggered.connect(self.removeFromList) self.menu.addAction(removefromlistAction) actionUpdate = Qt.QAction(self.tr("Update addon"), self) actionUpdate.setStatusTip( self.tr("Update currently selected addon if needed")) actionUpdate.triggered.connect(self.parent.updateAddon) self.menu.addAction(actionUpdate) actionForceUpdate = Qt.QAction(self.tr("Force Update addon"), self) actionForceUpdate.setStatusTip( self.tr("Unconditionally update currently selected addon")) actionForceUpdate.triggered.connect(self.parent.forceUpdateAddon) self.menu.addAction(actionForceUpdate) self.menu.addSeparator() actionRemove = Qt.QAction(self.tr("Delete addon"), self) actionRemove.setStatusTip(self.tr("Completely remove selected addon")) actionRemove.triggered.connect(self.parent.removeAddon) self.menu.addAction(actionRemove) self.menu.popup(Qt.QCursor.pos())
def setupMenuBar(self): """ Configure the menu bar """ import platform # Mac (Darwin) needs special treatment if platform.system()=="Darwin": menuBar=Qt.QMenuBar(None) else: menuBar=self.menuBar() self.mbar=menuBar #menuBar.setNativeMenuBar(False) menu=menuBar.addMenu("&File") action=Qt.QAction('Open Filelist...',None) menu.addAction(action) self.openfileaction=action action.triggered.connect(self.openFile) action=Qt.QAction('Save Filelist...',None) menu.addAction(action) self.savefileaction=action action.triggered.connect(self.saveFile) action=Qt.QAction('Save Data to HDF...',None) menu.addAction(action) self.savehdfaction=action action.triggered.connect(self.saveDataAsHDF)
def __init__(self, base_scene, parent): super().__init__(base_scene, parent) self.setMinimumSize(Qt.QSize(100,100)) self._zoom_preset_idx = self._ZOOM_ONE_TO_ONE_PRESET_IDX self._custom_zoom = 0 self.zoom_to_fit_action = Qt.QAction('Zoom to Fit', self) self.zoom_to_fit_action.setCheckable(True) self.zoom_to_fit_action.setChecked(False) self._ignore_zoom_to_fit_action_toggle = False self.zoom_to_fit_action.toggled.connect(self.on_zoom_to_fit_action_toggled) self.zoom_one_to_one_action = Qt.QAction('1:1 Zoom', self) self.zoom_one_to_one_action.triggered.connect(lambda: GeneralView.zoom_preset_idx.fset(self, GeneralView._ZOOM_ONE_TO_ONE_PRESET_IDX)) # Calling self.setDragMode(Qt.QGraphicsView.ScrollHandDrag) would enable QGraphicsView's built-in # click-drag panning, saving us from having to implement it. However, QGraphicsView is very # insistent about setting the mouse cursor to the hand icon in ScrollHandDragMode. It does this # in a number of places that would have to be invidually overridden, making it much simpler to # implement click-drag panning ourselves. self.setDragMode(Qt.QGraphicsView.NoDrag) self._panning = False self.setAcceptDrops(True) # Mouse tracking generally seems to be enabled for QGraphicsViews, but the documentation does # not state that this is always the case, and in fact, does state that mouse tracking defaults # to disabled for QWidgets - and QGraphicsView has QWidget as a base class. With mouse tracking # disabled, we would receive mouse movement events only while a mouse button is held down. This # is not desirable: the user may depend on mouse_movement_signal for in order to implement a hover # behavior, and this signal is emitted upon reception of a mouse movement event. So, to be safe, # we explicitly enable mouse tracking. self.setMouseTracking(True) self.background_color = .5, .5, .5
def __init__(self, parent=None, show=True): Qt.QMainWindow.__init__(self, parent) # create the frame self.frame = Qt.QFrame() vlayout = Qt.QVBoxLayout() # add the pyvista interactor object self.plotter = QtInteractor(self.frame) vlayout.addWidget(self.plotter.interactor) self.frame.setLayout(vlayout) self.setCentralWidget(self.frame) # simple menu to demo functions mainMenu = self.menuBar() fileMenu = mainMenu.addMenu('File') exitButton = Qt.QAction('Exit', self) exitButton.setShortcut('Ctrl+Q') exitButton.triggered.connect(self.close) fileMenu.addAction(exitButton) # allow adding a sphere meshMenu = mainMenu.addMenu('Mesh') self.add_sphere_action = Qt.QAction('Add Sphere', self) self.add_sphere_action.triggered.connect(self.add_sphere) meshMenu.addAction(self.add_sphere_action) if show: self.show()
def contextMenuEvent(self, event): self.menu = Qt.QMenu(self) row = self.currentRow() name = self.item(row, 0).text() self.menu.addAction(self.tr("Menu contextuel de {}").format(name)) actionUpdate = Qt.QAction(self.tr("Mise à jour Addon"), self) actionUpdate.setStatusTip( self.tr("Mise à jour des Addons sélectionnés si nécessaire")) actionUpdate.triggered.connect(self.parent.updateAddon) self.menu.addAction(actionUpdate) actionForceUpdate = Qt.QAction(self.tr("Forcer la mise à jour Addon"), self) actionForceUpdate.setStatusTip( self.tr("Mise à jour forcée des Addons sélectionnés")) actionForceUpdate.triggered.connect(self.parent.forceUpdateAddon) self.menu.addAction(actionForceUpdate) actionRemovefromlist = Qt.QAction( self.tr("Supprimer addon de la liste"), self) actionRemovefromlist.setStatusTip( self. tr("Laisser tous les fichiers inchangés, utile pour les sous-addons" )) actionRemovefromlist.triggered.connect(self.parent.removeFromList) self.menu.addAction(actionRemovefromlist) self.menu.popup(Qt.QCursor.pos())
def contextMenuEvent(self, event): self.menu = Qt.QMenu(self) rows = self.currentRows() if len(rows) == 1: name = self.item(rows[0], 0).text() else: name = self.tr("multiple addons") self.menu.addAction(self.tr("Context menu for {}").format(name)) actionUpdate = Qt.QAction(self.tr("Update addon"), self) actionUpdate.setStatusTip( self.tr("Update currently selected addons if needed")) actionUpdate.triggered.connect(self.parent.updateAddons) self.menu.addAction(actionUpdate) actionForceUpdate = Qt.QAction(self.tr("Force Update addon"), self) actionForceUpdate.setStatusTip( self.tr("Unconditionally update currently selected addons")) actionForceUpdate.triggered.connect(self.parent.forceUpdateAddon) self.menu.addAction(actionForceUpdate) actionRemovefromlist = Qt.QAction(self.tr("Remove addon from list"), self) actionRemovefromlist.setStatusTip( self.tr("Leave all files unaltered, useful for subaddons")) actionRemovefromlist.triggered.connect(self.parent.removeFromList) self.menu.addAction(actionRemovefromlist) self.menu.popup(Qt.QCursor.pos())
def initUI(self): exitAction = Qt.QAction('Exit', self) exitAction.setShortcut('Ctrl+Q') exitAction.triggered.connect(Qt.qApp.quit) #Restart icon and function ri = Qt.QPixmap() ri.load( os.path.join(os.path.dirname(os.path.realpath(__file__)), 'data', 'restart.png'), 'PNG') restart = Qt.QAction(Qt.QIcon(ri), 'New Game', self) restart.setShortcut('Ctrl+N') restart.triggered.connect(self.b.resetGame) #Grid layout self.gridContainer = Qt.QWidget() self.grid = Qt.QGridLayout() self.grid.addWidget(self.tmr, 0, 0) self.grid.addWidget(self.mc, 0, 1) self.grid.addWidget(self.b, 1, 0, 20, 2) self.gridContainer.setLayout(self.grid) #self.grid.setRowMinimumHeight(1, 400) #self.grid.setColumnMinimumWidth(0, self.size().width()) self.setCentralWidget(self.gridContainer) self.toolbar = self.addToolBar('Tooooooooools') self.toolbar.addAction(restart) #self.toolbar.addAction(exitAction) self.resize(self.b.w * 50, self.b.h * 50 + 200) self.setWindowTitle('Python Minesweeper') self.show()
def __init__(self, parent=None, show=True): Qt.QMainWindow.__init__(self, parent) with open('config.json') as f: self.config_data = json.load(f) self.query_matcher = QueryMatcher(self.config_data["FEATURE_DATA_FILE"]) self.supported_file_types = [".ply", ".off"] self.buttons = {} self.ds = reader.DataSet("") self.meshes = [] self.normalizer = Normalizer() self.smlw = None self.setWindowTitle('Source Mesh Window') self.frame = Qt.QFrame() self.QTIplotter = None self.vlayout = Qt.QVBoxLayout() self.frame.setLayout(self.vlayout) self.setCentralWidget(self.frame) self.hist_dict = {} self.setAcceptDrops(True) # Create main menu mainMenu = self.menuBar() fileMenu = mainMenu.addMenu('File') exitButton = Qt.QAction('Exit', self) exitButton.setShortcut('Ctrl+Q') exitButton.triggered.connect(self.close) fileMenu.addAction(exitButton) viewMenu = mainMenu.addMenu('View') exitButton = Qt.QAction('Plot tSNE', self) exitButton.triggered.connect(self.plot_tsne) viewMenu.addAction(exitButton) # Create load button and init action self.load_button = QPushButton("Load or drop mesh to query") self.load_button.clicked.connect(lambda: self.load_and_prep_query_mesh(self.open_file_name_dialog())) self.load_button.setFont(QtGui.QFont("arial", 30)) # Create Plots widget self.graphWidget = pg.PlotWidget() self.graphWidget.setBackground('w') # Create and add widgets to layout n_sing, n_hist, mapping_of_labels = get_sizes_features(features_file=self.config_data["FEATURE_DATA_FILE"],with_labels=True) # self.hist_labels = list({**FeatureExtractor.get_pipeline_functions()[1]}.values()) self.hist_labels = [val for key, val in mapping_of_labels.items() if "hist_" in key] self.tableWidget = TableWidget({}, self, {}) self.tableWidget.hide() self.vlayout.addWidget(self.load_button) # Position MainWindow screen_topleft = QDesktopWidget().availableGeometry().topLeft() screen_height = QDesktopWidget().availableGeometry().height() width = (QDesktopWidget().availableGeometry().width() * 0.4) self.move(screen_topleft) self.resize(width, screen_height - 50) if show: self.show()
def __init__(self, layers=None, selection_model=None, parent=None): super().__init__(parent) self._layers = None self.layers = layers self._selection_model = None self.selection_model = selection_model self._layer_instance_counts = {} self._imposed_image_mask = None self._ignore_layer_image_mask_change = False self.layer_name_in_contextual_info_action = Qt.QAction(self) self.layer_name_in_contextual_info_action.setText( 'Include Layer.name in Contextual Info') self.layer_name_in_contextual_info_action.setCheckable(True) self.layer_name_in_contextual_info_action.setChecked(False) self.image_name_in_contextual_info_action = Qt.QAction(self) self.image_name_in_contextual_info_action.setText( 'Include Image.name in Contextual Info') self.image_name_in_contextual_info_action.setCheckable(True) self.image_name_in_contextual_info_action.setChecked(False) self.auto_min_max_master_on_enabled_action = Qt.QAction(self) self.auto_min_max_master_on_enabled_action.setText( 'Auto Min/Max Master On') self.auto_min_max_master_on_enabled_action.setCheckable(True) self.auto_min_max_master_on_enabled_action.setChecked(False) # From the Qt docs: The triggered signal is emitted when an action is activated by the user; for example, when the user clicks a menu option, # toolbar button, or presses an action's shortcut key combination, or when trigger() was called. Notably, it is not emitted when setChecked() # or toggle() is called. self.auto_min_max_master_on_enabled_action.triggered.connect( self._on_master_enable_auto_min_max_triggered) # From the Qt docs: The toggled signal is emitted whenever a checkable action changes its isChecked() status. This can be the result of a user # interaction, or because setChecked() was called. self.auto_min_max_master_on_enabled_action.toggled.connect( self._on_master_enable_auto_min_max_toggled) self.examine_layer_mode_action = Qt.QAction(self) self.examine_layer_mode_action.setText('Examine Current Layer') self.examine_layer_mode_action.setCheckable(True) self.examine_layer_mode_action.setChecked(False) self.examine_layer_mode_action.setToolTip( textwrap.dedent("""\ In "Examine Layer Mode", a layer's .visible property does not control whether that layer is visible in the main view. Instead, the layer represented by the row currently selected in the layer table is treated as if the value of its .visible property were True and all others as if theirs were false.""")) self.histogram_alternate_column_shading_action = Qt.QAction(self) self.histogram_alternate_column_shading_action.setText( 'Alternate Histogram Bin Shading') self.histogram_alternate_column_shading_action.setCheckable(True) self.histogram_alternate_column_shading_action.setChecked(False)
def __init__(self, parent = None): Qt.QMainWindow.__init__(self, parent) #--Window and Renderer Setting #Main Window Initialization self.frame = Qt.QFrame() self.vl = Qt.QVBoxLayout() self.vtkWidget = QVTKRenderWindowInteractor(self.frame) self.vl.addWidget(self.vtkWidget) self.ren = vtk.vtkRenderer() self.ren.SetBackground(255, 255, 255) self.vtkWidget.GetRenderWindow().AddRenderer(self.ren) self.iren = self.vtkWidget.GetRenderWindow().GetInteractor() #Renderer Setting self.ren.ResetCamera() self.frame.setLayout(self.vl) self.setCentralWidget(self.frame) #Start Renderer self.iren.Initialize() self.show() #---------------------------------- #--Menu & Functions #Menu Bar to Wrap All Menu mainMenu = self.menuBar() #Menu on Menu Bar fileMenu = mainMenu.addMenu('Meshgrid') #Submenu Show Meshgrid addmeshgrid = Qt.QAction('Add Meshgrid', self) addmeshgrid.setShortcut('Ctrl+M') addmeshgrid.triggered.connect(self.add_mesh) fileMenu.addAction(addmeshgrid) #Submenu Add Section add_section = Qt.QAction("Add Section", self) add_section.triggered.connect(self.add_section) fileMenu.addAction(add_section) #----------------------------------- #--Data self.meshgrid = np.loadtxt("meshgrid.txt")
def setMenus(self): menus = {} menus['File'] = self.menuBar().addMenu('File') geomRendererWindowAction = Qt.QAction('Start Geometry Window', self) geomRendererWindowAction.triggered \ .connect(DisableAfterComplete(self.addGeomRenderer, geomRendererWindowAction)) quitAction = Qt.QAction('Quit', self) quitAction.triggered.connect(self.app.quit) menus['File'].addAction(geomRendererWindowAction) menus['File'].addAction(quitAction) return menus
def makeGeomRenderFrame(w): tb = w.addToolBar("Geometry Palette") curveCreateAction = Qt.QAction("Create Curve", tb) tb.addAction(curveCreateAction) curveCreateAction.triggered \ .connect(ParentedCallback(w, makeCreateCurveTools)) frame = Qt.QFrame() vl = Qt.QVBoxLayout() vtkWidget = QVTKRenderWindowInteractor(frame) vl.addWidget(vtkWidget) ren = vtk.vtkRenderer() vtkWidget.GetRenderWindow().AddRenderer(ren) colors = vtk.vtkNamedColors() ren.SetBackground(colors.GetColor3d("White")) iren = vtkWidget.GetRenderWindow().GetInteractor() iren.SetInteractorStyle(MyInteractor()) axes = vtk.vtkAxesActor() ren.AddActor(axes) ren.ResetCamera() frame.setLayout(vl) iren.Initialize() return frame
def __init__(self, contained_widget, name, docked, pad): super().__init__() self.contained_widget = contained_widget self.name = name layout = Qt.QVBoxLayout() self.setLayout(layout) self.docked = docked if docked: layout.setContentsMargins(-1, 0, -1, 6) layout.setSpacing(5) self.title_label = Qt.QLabel() f = self.title_label.font() f.setBold(True) self.title_label.setAlignment(Qt.Qt.AlignLeft | Qt.Qt.AlignVCenter) self.title_label.setFont(f) self.title_label.setBackgroundRole(Qt.QPalette.Shadow) self.title_label.setAutoFillBackground(True) layout.addWidget(self.title_label) else: if not pad: layout.setContentsMargins(0, 0, 0, 0) layout.setSpacing(0) layout.addWidget(contained_widget) self.visibility_change_action = Qt.QAction(contained_widget.windowTitle(), self) self.visibility_change_action.setCheckable(True) self.visibility_change_action.setChecked(False) self.visibility_change_action.toggled.connect(self.setVisible) contained_widget.windowTitleChanged.connect(self.on_contained_widget_window_title_changed) self.on_contained_widget_window_title_changed(contained_widget.windowTitle())
def updateActions(self): acts = self.actions() for a in acts: if a: self.removeAction(a) a = Q.QAction("&Open near",self) a.triggered.connect(self.openFileNear) self.addAction(a) a = Q.QAction("Load to new &player",self) a.triggered.connect(partial(self.__loadfileAction,-1)) self.addAction(a) for p in self.players: a = Q.QAction("Load to player {}".format(p.index),self) a.triggered.connect(partial(self.__loadfileAction,p)) self.addAction(a) self.playerChanged.emit(self.player)
def __init__(self, property_name=None, list_=None, model=None, parent=None): super().__init__(parent) if model is None: if list_ is None: list_ = om.SignalingList() elif not isinstance(list_, om.SignalingList) and any( not hasattr(list_, signal) for signal in ('inserted', 'removed', 'replaced', 'name_changed')): list_ = om.SignalingList(list_) model = BasicSignalingListModel(property_name, list_, parent) self.setModel(model) self.setDragDropMode(Qt.QAbstractItemView.DragDrop) self.setDropIndicatorShown(True) self.setDefaultDropAction(Qt.Qt.LinkAction) self.setSelectionMode(Qt.QAbstractItemView.SingleSelection) self.delete_current_row_action = Qt.QAction(self) self.delete_current_row_action.setText('Delete current row') self.delete_current_row_action.setShortcut(Qt.Qt.Key_Delete) self.delete_current_row_action.setShortcutContext(Qt.Qt.WidgetShortcut) self.delete_current_row_action.triggered.connect( self._on_delete_current_row_action) self.addAction(self.delete_current_row_action)
def add_action(self, name, shortcut_key, function): action = Qt.QAction(name, self.qt_object) action.setShortcut(shortcut_key) action.triggered.connect(function) self.qt_object.addAction(action) self.actions[name] = action return action
def rightMenuShow(self): rightMenu = QMenu() removeAction = Qt.QAction( u"删除", self, triggered=self.DeleteDir ) # triggered 为右键菜单点击后的激活事件。这里slef.close调用的是系统自带的关闭事件。 gotoAction = Qt.QAction( u"打开", self, triggered=self.GotoDir ) # triggered 为右键菜单点击后的激活事件。这里slef.close调用的是系统自带的关闭事件。 addAction = Qt.QAction(u"创建文件夹", self, triggered=self.CreateDir) # 也可以指定自定义对象事件 addfileAction = Qt.QAction(u"创建文件", self, triggered=self.CreateFile) # 也可以指定自定义对象事件 rightMenu.addAction(gotoAction) rightMenu.addAction(addAction) rightMenu.addAction(addfileAction) rightMenu.addAction(removeAction) rightMenu.exec_(QtGui.QCursor.pos())
def __init__(self, scope, window_title='Viewer', fps_max=None, app_prefs_name='scope-viewer', parent=None): super().__init__(window_title=window_title, app_prefs_name=app_prefs_name, parent=parent) self.scope = scope self.main_view_toolbar.removeAction(self.snapshot_action) self.scope_toolbar = self.addToolBar('Scope') self.show_over_exposed_action = Qt.QAction('Show Over-Exposed', self) self.show_over_exposed_action.setCheckable(True) self.show_over_exposed_action.setChecked(True) self.show_over_exposed_action.toggled.connect( self.on_show_over_exposed_action_toggled) self.scope_toolbar.addAction(self.show_over_exposed_action) self.flipbook.pages.append( image.Image(numpy.array([[0]], dtype=numpy.uint8), name='Live Image')) self.live_image_page = self.flipbook.pages[-1] self.flipbook_dock_widget.hide() self.image = None self.snap_action = Qt.QAction('Snap Image', self) self.snap_action.triggered.connect(self.snap_image) self.scope_toolbar.addAction(self.snap_action) self.save_action = Qt.QAction('Save Image', self) self.save_action.triggered.connect(self.save_image) self.scope_toolbar.addAction(self.save_action) self.servicing_image = util.Condition() self.closing = False if fps_max is None: self.interval_min = None else: self.interval_min = 1 / fps_max self.last_image_time = 0 self.live_streamer = scope_client.LiveStreamer( scope, self.post_new_image_event)
def init(self, *va, **kw): orig_init(self, *va, **kw) action = Qt.QAction(self) action.setText(desc) action.setShortcut(shortcut) action.setShortcutContext(shortcut_context) self.addAction(action) setattr(self, action_attr_name, action) if connect_action_triggered_to_handler_method: action.triggered.connect(getattr(self, handler_method_name))
def __init__(self, ris_widget, menu): self.masks = dict(self.DEFAULT_MASKS) self.layer_stack = ris_widget.layer_stack self.mask_circle = centered_circle.CenteredCircle(ris_widget) self.mask_circle.hide() self.mask_circle.geometry_change_callbacks.append( self.geometry_changed) self.display_mask = _MaskRegion(ris_widget) hist_mask = menu.addMenu('Histogram Mask') mask_actions = Qt.QActionGroup(menu) no_mask = Qt.QAction('No Mask', mask_actions) no_mask.setCheckable(True) no_mask.toggled.connect( lambda checked: self.mask_toggled(checked, None)) mask_07 = Qt.QAction('0.7\N{MULTIPLICATION SIGN} Coupler', mask_actions) mask_07.setCheckable(True) mask_07.toggled.connect( lambda checked: self.mask_toggled(checked, 0.7)) mask_1 = Qt.QAction('1\N{MULTIPLICATION SIGN} Coupler', mask_actions) mask_1.setCheckable(True) mask_1.toggled.connect(lambda checked: self.mask_toggled(checked, 1)) self.custom_mask = Qt.QAction('Custom Mask', mask_actions) self.custom_mask.setCheckable(True) self.custom_mask.toggled.connect( lambda checked: self.mask_toggled(checked, 'custom')) hist_mask.addActions(mask_actions.actions()) hist_mask.addSeparator() self.show_action = Qt.QAction('Show Mask') hist_mask.addAction(self.show_action) self.show_action.setCheckable(True) self.show_action.setChecked(False) self.show_action.toggled.connect(self.mask_circle.setVisible) no_mask.setChecked(True)
def __init__(self, parent=None, show=True): Qt.QMainWindow.__init__(self, parent) self.ds = reader.DataSet("") self.meshes = [] self.plotter = BackgroundPlotter(shape=(1, 2), border_color='white', title="MMR Visualization") self.setWindowTitle('MMR UI') self.frame = Qt.QFrame() vlayout = Qt.QVBoxLayout() self.normalizer = Normalizer() self.frame.setLayout(vlayout) self.setCentralWidget(self.frame) mainMenu = self.menuBar() fileMenu = mainMenu.addMenu('File') exitButton = Qt.QAction('Exit', self) exitButton.setShortcut('Ctrl+Q') exitButton.triggered.connect(self.close) fileMenu.addAction(exitButton) meshMenu = mainMenu.addMenu('Mesh') self.load_mesh = Qt.QAction('Load mesh', self) self.load_mesh.triggered.connect( lambda: self.add_mesh(self.open_file_name_dialog())) meshMenu.addAction(self.load_mesh) self.show_norm_pipeline = Qt.QAction('Show norm pipeline', self) self.show_norm_pipeline.triggered.connect( lambda: self.show_processing(self.open_file_name_dialog())) meshMenu.addAction(self.show_norm_pipeline) self.extract_features = Qt.QAction('Extract features', self) self.extract_features.triggered.connect(lambda: print( FeatureExtractor.mono_run_pipeline(self.open_file_name_dialog()))) meshMenu.addAction(self.extract_features) if show: self.show()
def __init__(self, parent=None, show=True): Qt.QMainWindow.__init__(self, parent) # create the frame self.frame = Qt.QFrame() vlayout = Qt.QVBoxLayout() # add the pyvista interactor object self.plotter = QtInteractor(self.frame) vlayout.addWidget(self.plotter.interactor) self.frame.setLayout(vlayout) self.setCentralWidget(self.frame) # simple menu mainMenu = self.menuBar() fileMenu = mainMenu.addMenu('File') editMenu = mainMenu.addMenu('Edit') # opening a mesh file self.open_mesh_action = Qt.QAction('Open Mesh...', self) self.open_mesh_action.triggered.connect(self.open_mesh) fileMenu.addAction(self.open_mesh_action) # exit button exitButton = Qt.QAction('Exit', self) exitButton.setShortcut('Ctrl+Q') exitButton.triggered.connect(self.close) fileMenu.addAction(exitButton) #Create secondary cubes self.cubic_skeleton_action = Qt.QAction('Cubic Skeleton', self) self.cubic_skeleton_action.triggered.connect(self.cubic_skeleton) editMenu.addAction(self.cubic_skeleton_action) if show: self.show()
def __init__(self, parent=None, show=True): Qt.QMainWindow.__init__(self, parent) # create the frame self.frame = Qt.QFrame() vlayout = Qt.QVBoxLayout() # add the pyvista interactor object self.plotter = QtInteractor(self.frame) vlayout.addWidget(self.plotter.interactor) self.frame.setLayout(vlayout) self.setCentralWidget(self.frame) # simple menu mainMenu = self.menuBar() fileMenu = mainMenu.addMenu('File') editMenu = mainMenu.addMenu('Edit') # opening a mesh file self.open_mesh_action = Qt.QAction('Open Mesh...', self) self.open_mesh_action.triggered.connect(self.open_mesh) fileMenu.addAction(self.open_mesh_action) # set centroid self.skewed_centroid_action = Qt.QAction('Skewed Centroid', self) self.skewed_centroid_action.triggered.connect(self.skewed_centroid_check) fileMenu.addAction(self.skewed_centroid_action) # save screenshot self.save_screenshot_action = Qt.QAction('Save Screenshot', self) self.save_screenshot_action.triggered.connect(self.save_screenshot) fileMenu.addAction(self.save_screenshot_action) # exit button exitButton = Qt.QAction('Exit', self) exitButton.setShortcut('Ctrl+Q') exitButton.triggered.connect(self.close) fileMenu.addAction(exitButton) # Show max cube & raytracing process self.max_cube_action = Qt.QAction('Max Cube', self) self.max_cube_action.triggered.connect(self.show_max_cube) editMenu.addAction(self.max_cube_action) # Show max cube & raytracing process self.max_cuboid_action = Qt.QAction('Max Cuboid', self) self.max_cuboid_action.triggered.connect(self.max_cuboid) editMenu.addAction(self.max_cuboid_action) if show: self.show() self.plotter.add_axes(interactive=None, line_width=2, x_color=None, y_color=None, z_color=None, xlabel='X', ylabel='Y', zlabel='Z', labels_off=False, box= None, box_args=None)
def __init__(self, guiTimer, guiMineCounter): """ Initialzes variables: self.board[][] - stores mines and numbers as chars self.cover[][] - stores whether tile is covered or uncovered as 1(covered) or 0(uncovered) self.flags[][] - stores whether a tile is flaged (true or false) mines - number of mines w - width of grid h - height of grid gameState - indicates whether game is unstarted(0), in progress(1), lost(2) or won(3) """ super(boardWidget, self).__init__() self.mines = 99 self.w = int(30) self.h = int(16) self.defaultSqSize = 50 self.resize((self.w) * self.defaultSqSize + 10, (self.h + 1) * self.defaultSqSize) self.setSquareSize() row = ['0' for i in range(self.w)] self.board = [row.copy() for i in range(self.h)] row = [1 for i in range(self.w)] self.cover = [row.copy() for i in range(self.h)] row = [False for i in range(self.w)] self.flags = [row.copy() for i in range(self.h)] self.flaggedMines = 0 self.rPressed = False self.lPressed = False self.grid = [row.copy() for i in range(self.h)] #Grid of QSquares (sized according to current window size s = self.sq for i in range(0, self.w): for j in range(0, self.h): self.grid[j][i] = Qt.QRect((i * s), (j * s), s, s) self.loadImages() self.gameState = 0 self.addGUImc = Qt.QAction(self) self.addGUImc.triggered.connect(guiMineCounter.addMine) self.subGUImc = Qt.QAction(self) self.subGUImc.triggered.connect(guiMineCounter.subMine) self.resetGUImc = Qt.QAction(self) self.resetGUImc.triggered.connect(guiMineCounter.resetMines) self.startGUItimer = Qt.QAction(self) self.startGUItimer.triggered.connect(guiTimer.startTimer) self.endGUItimer = Qt.QAction(self) self.endGUItimer.triggered.connect(guiTimer.endTimer) self.resetGUItimer = Qt.QAction(self) self.resetGUItimer.triggered.connect(guiTimer.resetTimer)
def __init__(self, model, parent=None): super().__init__(parent) self.horizontalHeader().setSectionResizeMode(Qt.QHeaderView.ResizeToContents) self.setDragDropOverwriteMode(False) self.setDragEnabled(True) self.setAcceptDrops(True) self.setDragDropMode(Qt.QAbstractItemView.InternalMove) self.setDropIndicatorShown(True) self.setSelectionBehavior(Qt.QAbstractItemView.SelectRows) self.setSelectionMode(Qt.QAbstractItemView.SingleSelection) self.delete_current_row_action = Qt.QAction(self) self.delete_current_row_action.setText('Delete current row') self.delete_current_row_action.triggered.connect(self._on_delete_current_row_action_triggered) self.delete_current_row_action.setShortcut(Qt.Qt.Key_Delete) self.delete_current_row_action.setShortcutContext(Qt.Qt.WidgetShortcut) self.addAction(self.delete_current_row_action) self.setModel(model)
def build_menu(self): mainMenu = self.menuBar() #Top menu bar fileMenu = mainMenu.addMenu('&File') importtip = 'Accepts most widely used chemical file formats' self.importact = Qt.QAction('Import Molecule', self) self.build_action(self.importact, importtip, self.open_file, 'Ctrl+O') fileMenu.addAction(self.importact) exporttip = 'Save under a specific filepath' self.exportact = Qt.QAction('Export STL', self) self.build_action(self.exportact, exporttip, self.save_file, 'Ctrl+Shift+S') fileMenu.addAction(self.exportact) self.exportact.setDisabled(True) fileMenu.addSeparator() quittip = 'Leave the application' self.quitact = Qt.QAction('Quit', self) self.build_action(self.quitact, quittip, self.close_application, 'Ctrl+Q') fileMenu.addAction(self.quitact) editMenu = mainMenu.addMenu('&Edit') placejointtip = 'Place a joint on selected bond' self.placejointact = Qt.QAction('Add Joint to Selected', self) self.build_action(self.placejointact, placejointtip, self.place_joint, 'Ctrl+B') self.placejointact.setDisabled(True) editMenu.addAction(self.placejointact) removejointtip = 'Remove a joint on selected bond' self.removejointact = Qt.QAction('Remove Joint from Selected', self) self.build_action(self.removejointact, removejointtip, self.remove_joint, 'Del') editMenu.addAction(self.removejointact) viewMenu = mainMenu.addMenu('&View') themeMenu = viewMenu.addMenu('&Theme') defaultthemetip = 'Default blue and white theme' self.defaultthemeact = Qt.QAction('Default', self) self.build_action(self.defaultthemeact, defaultthemetip, self.themer) themeMenu.addAction(self.defaultthemeact) helpMenu = mainMenu.addMenu('Help') abouttip = 'Credits and attributions' self.aboutact = Qt.QAction('About', self) self.build_action(self.aboutact, abouttip, self.about_trigger) helpMenu.addAction(self.aboutact)
def __init__(self, contained_widget): super().__init__() self.contained_widget = contained_widget l = Qt.QVBoxLayout() margins = list(l.getContentsMargins()) margins[1] = 0 l.setContentsMargins(*margins) self.setLayout(l) self.pop_button = Qt.QPushButton('\N{NORTH EAST ARROW}') self.pop_button.setCheckable(True) self.pop_button.setChecked(False) self.pop_button.setFocusPolicy(Qt.Qt.NoFocus) self.pop_button.clicked.connect(self.on_popout_button_clicked) if hasattr(contained_widget, 'embed_widget_flow_pop_button'): contained_widget.embed_widget_flow_pop_button(self.pop_button) l.addWidget(contained_widget) else: self.pop_frame = Qt.QFrame() self.pop_frame.setFrameStyle(Qt.QFrame.StyledPanel | Qt.QFrame.Plain) self.pop_frame.setBackgroundRole(Qt.QPalette.Shadow) self.pop_frame.setAutoFillBackground(True) self.pop_frame_title_label = Qt.QLabel() f = self.pop_frame_title_label.font() f.setPointSizeF(f.pointSize() * 1.5) f.setBold(True) self.pop_frame_title_label.setAlignment(Qt.Qt.AlignLeft | Qt.Qt.AlignVCenter) self.pop_frame_title_label.setFont(f) l.addWidget(self.pop_frame) ll = Qt.QHBoxLayout() ll.setContentsMargins(1,1,1,1) self.pop_frame.setLayout(ll) ll.addWidget(self.pop_frame_title_label) ll.addSpacerItem(Qt.QSpacerItem(0, 0, Qt.QSizePolicy.Expanding)) ll.addWidget(self.pop_button) l.addWidget(contained_widget) self.visibility_change_action = Qt.QAction(contained_widget.windowTitle(), self) self.visibility_change_action.setCheckable(True) self.visibility_change_action.setChecked(False) self.visibility_change_action.toggled.connect(self.on_visibility_change_action_toggled) contained_widget.windowTitleChanged.connect(self.on_contained_widget_window_title_changed) self.on_contained_widget_window_title_changed(contained_widget.windowTitle()) if not hasattr(contained_widget, 'embed_widget_flow_pop_button'): self.pop_frame.setSizePolicy(Qt.QSizePolicy.Expanding, Qt.QSizePolicy.Fixed)