示例#1
0
 def test_add_actions_with_invalid_parameter_raises_value_error(self):
     test_act_1 = create_action(None, "Test Action 1")
     test_act_2 = QObject()
     test_toolbar = QToolBar()
     self.assertRaises(ValueError, add_actions, test_toolbar,
                       [test_act_1, test_act_2])
示例#2
0
 def test_add_actions_with_bad_target_raises_attribute_error(self):
     test_act_1 = create_action(None, "Test Action 1")
     test_act_2 = create_action(None, "Test Action 2")
     test_toolbar = QObject()
     self.assertRaises(AttributeError, add_actions, test_toolbar,
                       [test_act_1, test_act_2])
示例#3
0
    def setupUI(self):
        self.ui = QObject()
        layout = QtWidgets.QVBoxLayout()

        self.parent.setLayout(layout)
        sett_widget = QtWidgets.QWidget()
        self.sett_layout = QtWidgets.QHBoxLayout()
        sett_widget.setLayout(self.sett_layout)
        # creating a toolbar
        self.toolbar = QtWidgets.QToolBar()
        self.create_toolbar()
        layout.addWidget(self.toolbar)

        splitter = QtWidgets.QSplitter(Qt.Horizontal)
        layout.addWidget(splitter)

        # set viewer area
        widg = QtWidgets.QWidget()
        # self.viewer = Viewer2D(widg)
        self.viewer = Viewer2DBasic(widg)
        self.viewer.histogram_red.setVisible(False)
        self.viewer.histogram_green.setVisible(False)
        self.viewer.histogram_blue.setVisible(False)
        self.viewer.sig_double_clicked.connect(self.move_at)

        # displaying the scan list tree
        self.settings_tree = ParameterTree()
        # self.settings_tree.setMaximumWidth(300)
        self.settings_tree.setMinimumWidth(300)
        # self.settings_tree.setVisible(False)
        params_scan = [
            {
                'title':
                'Settings',
                'name':
                'settings',
                'type':
                'group',
                'children': [
                    {
                        'title': 'Load h5:',
                        'name': 'Load h5',
                        'type': 'action'
                    },
                    {
                        'title': 'h5 path:',
                        'name': 'filepath',
                        'type': 'str',
                        'value': '',
                        'readonly': True
                    },
                    {
                        'title': 'Load Image:',
                        'name': 'Load Image',
                        'type': 'action'
                    },
                    {
                        'title': 'Image path:',
                        'name': 'imagepath',
                        'type': 'str',
                        'value': '',
                        'readonly': True
                    },
                ]
            },
            {
                'title': 'Scans',
                'name': 'scans',
                'type': 'group',
                'children': []
            },
        ]
        self.settings = Parameter.create(name='settings',
                                         type='group',
                                         children=params_scan)
        self.settings_tree.setParameters(self.settings, showTop=False)
        self.settings.sigTreeStateChanged.connect(self.settings_changed)

        self.settings.child('settings',
                            'Load h5').sigActivated.connect(self.load_data)
        self.settings.child('settings',
                            'Load Image').sigActivated.connect(self.load_image)

        self.ui.statusbar = QtWidgets.QStatusBar()
        self.ui.statusbar.setMaximumHeight(25)
        layout.addWidget(self.ui.statusbar)
        self.ui.log_message = QtWidgets.QLabel('Initializing')
        self.ui.statusbar.addPermanentWidget(self.ui.log_message)

        self.sett_layout.addWidget(self.settings_tree)
        splitter.addWidget(sett_widget)
        splitter.addWidget(self.viewer.parent)
示例#4
0
    def setupUI(self):

        self.ui = QObject()

        self.parent.setLayout(QtWidgets.QVBoxLayout())
        splitter_hor = QtWidgets.QSplitter(Qt.Horizontal)

        # self.ui.statusbar = QtWidgets.QStatusBar()
        # self.ui.statusbar.setMaximumHeight(15)

        self.parent.layout().addWidget(splitter_hor)
        #self.parent.layout().addWidget(self.ui.statusbar)

        splitter_ver = QtWidgets.QSplitter(Qt.Vertical)
        splitter_hor.addWidget(splitter_ver)
        splitter_hor.addWidget(self.roi_manager.roiwidget)
        self.roi_manager.roiwidget.hide()

        self.ui.button_widget = QtWidgets.QToolBar()

        splitter_ver.addWidget(self.ui.button_widget)

        self.ui.Graph_Lineouts = pg.PlotWidget()

        widg = QtWidgets.QWidget()
        self.viewer = Viewer1DBasic(widg)
        splitter_ver.addWidget(widg)
        splitter_ver.addWidget(self.ui.Graph_Lineouts)
        self.ui.Graph1D = self.viewer  # for backcompatibility
        self.roi_manager.viewer_widget = self.viewer.plotwidget

        self.setup_buttons(self.ui.button_widget)
        self.setup_zoom()

        self.legend = None
        self.axis_settings = dict(orientation='bottom',
                                  label='x axis',
                                  units='pxls')

        self.ui.xaxis_item = self.viewer.plotwidget.plotItem.getAxis('bottom')
        self.ui.Graph_Lineouts.hide()

        self.ui.aspect_ratio_pb.triggered.connect(self.lock_aspect_ratio)

        # #crosshair
        self.ui.crosshair = Crosshair(self.viewer.plotwidget.plotItem,
                                      orientation='vertical')
        self.ui.crosshair.crosshair_dragged.connect(self.update_crosshair_data)
        self.ui.crosshair_pb.triggered.connect(self.crosshairClicked)
        self.crosshairClicked()

        # self.ui.Measurement_widget=Dock("Measurement Module", size=(300, 100), closable=True)
        # self.dockarea.addDock(self.ui.Measurement_widget)
        self.ui.Measurement_widget = QtWidgets.QWidget()
        self.ui.Measurement_widget.setVisible(False)

        # #Connecting buttons:
        self.ui.Do_math_pb.triggered.connect(self.do_math_fun)
        self.ui.do_measurements_pb.triggered.connect(
            self.open_measurement_module)
        self.ui.zoom_pb.triggered.connect(self.enable_zoom)
        self.ui.scatter.triggered.connect(self.do_scatter)
        self.ui.xyplot_action.triggered.connect(self.do_xy)
示例#5
0
文件: Qt.py 项目: mdavidsaver/p4p-dev
    def __init__(self, provider, parent=None, **kws):
        super(Context, self).__init__(provider, **kws)
        self._parent = QObject(parent)

        self._mcache = {}
        self._puts = {}