Esempio n. 1
0
    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)
Esempio n. 2
0
    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())
Esempio n. 3
0
    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()
Esempio n. 4
0
 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())
Esempio n. 5
0
 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)
Esempio n. 6
0
 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
Esempio n. 7
0
File: test.py Progetto: yetisir/krak
    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()
Esempio n. 8
0
 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())
Esempio n. 9
0
 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())
Esempio n. 10
0
    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()
Esempio n. 11
0
    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()
Esempio n. 12
0
 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)
Esempio n. 13
0
    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")
Esempio n. 14
0
    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
Esempio n. 15
0
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
Esempio n. 16
0
 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())
Esempio n. 17
0
 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)
Esempio n. 18
0
 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)
Esempio n. 19
0
 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
Esempio n. 20
0
 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())
Esempio n. 21
0
    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)
Esempio n. 22
0
 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))
Esempio n. 23
0
    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)
Esempio n. 24
0
    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()
Esempio n. 26
0
    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)
Esempio n. 27
0
    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)
Esempio n. 29
0
    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)