Exemplo n.º 1
0
    def __init__(self):
        # init main panel
        QMainWindow.__init__(self, None)
        #        QMainWindow.__init__(self, None, QtCore.Qt.WindowStaysOnTopHint)
        Thread.__init__(self)
        widget = QWidget()
        self.setCentralWidget(widget)
        self.setWindowTitle('3D tracking')
        self.move(600, 150)
        # define main objects
        self.tracking = tracking_3d.Tracking3D.getInstance()

        # init dataset from gui_construction
        self.gb_sequence = DataSetEditGroupBox(
            "Sequence", gui_construction.RemoteParameters, comment='')
        self.gb_sample = DataSetEditGroupBox("Sample",
                                             gui_construction.SampleParameters,
                                             comment='')
        self.gb_tracking = DataSetEditGroupBox(
            "Tracking", gui_construction.TrackingParameters, comment='')

        self.btn_process = QPushButton("Start tracking", self)
        self.btn_process.clicked.connect(self.start_tracking)

        # associate events to dataset apply buttons
        self.connect(self.gb_sequence, SIGNAL("apply_button_clicked()"),
                     self.update_remote_params)
        self.connect(self.gb_tracking, SIGNAL("apply_button_clicked()"),
                     self.update_tracking_params)
        self.connect(self.gb_sample, SIGNAL("apply_button_clicked()"),
                     self.update_sample_parameters)

        # organize the app panels
        splitter1 = QSplitter(QtCore.Qt.Vertical)
        splitter1.addWidget(self.gb_sequence)
        splitter1.addWidget(self.gb_sample)
        splitter1.addWidget(self.gb_tracking)
        splitter1.addWidget(self.btn_process)

        splitter = QSplitter(self)
        splitter.addWidget(splitter1)
        self.setCentralWidget(splitter)
        self.setContentsMargins(10, 5, 10, 5)

        # get all params from datasets
        self.gb_sequence.get()
        self.gb_sample.get()
        self.gb_tracking.get()
Exemplo n.º 2
0
	def __init__(self):
		QMainWindow.__init__(self)
		self.setWindowTitle("Application example")
		self.groupbox = DataSetEditGroupBox("Standard dataset", OtherDataSet, comment='')
		#self.dialog = guidata.dataset.qtwidgets.DataSetEditDialog(self.groupbox)
		splitter = QSplitter(self)
		splitter.addWidget(self.groupbox)
Exemplo n.º 3
0
    def __init__(self, parent):
        QSplitter.__init__(self, parent)
        self.parent = parent
        self.setContentsMargins(10, 10, 10, 10)
        self.setOrientation(Qt.Vertical)

        #		# Spectrometers in tabs
        self.tabs = SpectrometerTabs(self, ['AFFTS'])

        # Toolbar
        self.toolbar = ToolBar(parent.Icons)
        self.toolbar.setOrientation(Qt.Vertical)

        # Control panel (housekeeping)
        self.controlpanel = ControlPanel(self)

        # Status bar
        self.statusbar = QStatusBar()
        self.ActionIcon = QLabel(u"")
        self.ActionInfo = QLabel(u"")
        self.statusbar.addPermanentWidget(self.ActionIcon)
        self.statusbar.addPermanentWidget(self.ActionInfo, 1)
        self.addWidget(self.tabs)

        Hsplit = QSplitter()
        Hsplit.setOrientation(Qt.Horizontal)
        Hsplit.addWidget(self.toolbar)
        Hsplit.addWidget(self.controlpanel)
        self.addWidget(Hsplit)

        self.addWidget(self.statusbar)

        self.setSizes([2000, 1, 1, 1])
Exemplo n.º 4
0
    def __init__(self):
        QMainWindow.__init__(self)
        self.setWindowIcon(get_icon('python.png'))
        self.setWindowTitle("Application example")

        # Instantiate dataset-related widgets:
        self.groupbox1 = DataSetShowGroupBox("Activable dataset",
                                             ExampleDataSet,
                                             comment='')
        self.groupbox2 = DataSetShowGroupBox("Standard dataset",
                                             AnotherDataSet,
                                             comment='')
        self.groupbox3 = DataSetEditGroupBox("Standard dataset",
                                             OtherDataSet,
                                             comment='')
        self.groupbox4 = DataSetEditGroupBox("Standard dataset",
                                             ExampleMultiGroupDataSet,
                                             comment='')
        self.groupbox3.SIG_APPLY_BUTTON_CLICKED.connect(self.update_window)
        self.update_groupboxes()

        splitter = QSplitter(self)
        splitter.addWidget(self.groupbox1)
        splitter.addWidget(self.groupbox2)
        splitter.addWidget(self.groupbox3)
        splitter.addWidget(self.groupbox4)
        self.setCentralWidget(splitter)
        self.setContentsMargins(10, 5, 10, 5)

        # File menu
        file_menu = self.menuBar().addMenu("File")
        quit_action = create_action(self,
                                    "Quit",
                                    shortcut="Ctrl+Q",
                                    icon=get_std_icon("DialogCloseButton"),
                                    tip="Quit application",
                                    triggered=self.close)
        add_actions(file_menu, (quit_action, ))

        # Edit menu
        edit_menu = self.menuBar().addMenu("Edit")
        editparam1_action = create_action(self,
                                          "Edit dataset 1",
                                          triggered=self.edit_dataset1)
        editparam2_action = create_action(self,
                                          "Edit dataset 2",
                                          triggered=self.edit_dataset2)
        editparam4_action = create_action(self,
                                          "Edit dataset 4",
                                          triggered=self.edit_dataset4)
        add_actions(edit_menu,
                    (editparam1_action, editparam2_action, editparam4_action))
    def __init__(self):
        QMainWindow.__init__(self)
        self.setWindowIcon(get_icon('python.png'))
        self.setWindowTitle("P3 Ctrl")
        # Instantiate dataset-related widgets:
        self.group1 = DataSetEditGroupBox("Activable dataset",
                                          Processing,
                                          comment='')
        self.group1.SIG_APPLY_BUTTON_CLICKED.connect(self.group1._items[0].hi)
        splitter = QSplitter(self)
        splitter.addWidget(self.group1)

        self.setCentralWidget(splitter)
        self.setContentsMargins(10, 5, 10, 5)
Exemplo n.º 6
0
    def __init__(self, parent):
        QSplitter.__init__(self, parent)
        self.parent = parent
        self.setContentsMargins(10, 10, 10, 10)
        self.setOrientation(Qt.Vertical)

        # Toolbar
        toolbar = ToolBar(parent.getIcon, parent.measureInitToggle,
                          parent.measureStartStop)
        toolbar.setOrientation(Qt.Vertical)

        # Spectrometers in tabs
        self.tabs = SpectrometerTabs(self,
                                     autoX=toolbar.getX,
                                     autoY=toolbar.getY)

        # Control panel (housekeeping + control)
        controlpanel = QSplitter()
        self.Controlvalues = Controlwidget()
        self.HKvalues = HKwidget()
        controlpanel.addWidget(self.Controlvalues)
        controlpanel.addWidget(self.HKvalues)
        controlpanel.setSizes([2000, 1])

        self.sBar = StatusBar(parent.getIcon)

        self.addWidget(self.tabs)

        Hsplit = QSplitter()
        Hsplit.setOrientation(Qt.Horizontal)
        Hsplit.addWidget(toolbar)
        Hsplit.addWidget(controlpanel)
        self.addWidget(Hsplit)

        self.addWidget(self.sBar)

        self.setSizes([2000, 1, 1, 1])
Exemplo n.º 7
0
	def __init__(self):
		QMainWindow.__init__(self)
		self.setWindowTitle("Application example")
		file_menu = self.menuBar().addMenu("File")
		quit_action = create_action(self, "Quit",
		                            shortcut="Ctrl+Q",
		                            icon=get_std_icon("DialogCloseButton"),
		                            tip="Quit application",
		                            triggered=self.close)
		add_actions(file_menu, (quit_action,))
		edit_menu = self.menuBar().addMenu("Edit")
		
		self.groupbox = DataSetEditGroupBox("Standard dataset", OtherDataSet, comment='')
		self.groupbox.SIG_APPLY_BUTTON_CLICKED.connect(self.update_window)
		self.display = DataSetEditGroupBox("Read-only dataset", OtherDataSet, comment='')
		
		splitter = QSplitter(self)
		splitter.addWidget(self.groupbox)
		self.setCentralWidget(splitter)
		self.setContentsMargins(10, 5, 10, 5)
Exemplo n.º 8
0
    def __init__(self):
        QMainWindow.__init__(self)
        self.setWindowIcon(get_icon('python.png'))
        self.setWindowTitle("PV Loop Simulation")

        pal = QtGui.QPalette()
        role = QtGui.QPalette.Background
        pal.setColor(role, QtGui.QColor(255, 255, 255))
        self.setPalette(pal)

        self.textEdit = QtGui.QLabel('None')

        self.loadButton = QtGui.QPushButton("Load")
        self.loadButton.clicked.connect(self.on_click)
        self.buttonSave = QtGui.QPushButton('Clear Plot', self)
        self.buttonSave.clicked.connect(self.clearPlots)
        #self.connect(self.smoothGB, SIGNAL("apply_button_clicked()"),
        #self.update_window)
        self.table1 = QtGui.QTableWidget()
        self.table2 = QtGui.QTableWidget()

        self.fileName = ''
        self.lastClicked = []
        self.number_plots = 0

        self.pw1 = PG.PlotWidget(name='VTC')
        self.pw1.setLabel('left', 'Volume', units='mL')
        self.pw1.setLabel('bottom', 'Time', units='s')
        self.pw1.setBackground((255, 255, 255))

        self.pw2 = PG.PlotWidget(name='VTC')
        self.pw2.setBackground((255, 255, 255))
        self.pw2.setLabel('left', 'Pressure', units='mmHg')
        self.pw2.setLabel('bottom', 'Time', units='s')

        self.pw3 = PG.PlotWidget(name='PV')
        self.pw3.setBackground((255, 255, 255))
        self.pw3.setLabel('left', 'Pressure', units='mmHg')
        self.pw3.setLabel('bottom', 'Volume', units='ml')

        #horizontalLayout = QtGui.QHBoxLayout(self)
        splitter = QSplitter(QtCore.Qt.Vertical)
        splitter2 = QSplitter(QtCore.Qt.Vertical)
        splitterH = QSplitter(QtCore.Qt.Horizontal)

        splitter.addWidget(self.loadButton)
        splitter.addWidget(self.pw1)
        splitter.addWidget(self.pw2)
        splitter.addWidget(self.pw3)

        splitter2.addWidget(self.table1)
        splitter2.addWidget(self.table2)
        splitter2.addWidget(self.buttonSave)

        splitterH.addWidget(splitter)
        splitterH.addWidget(splitter2)

        self.table1.setRowCount(5)
        self.table1.setColumnCount(2)

        self.table2.setRowCount(8)
        self.table2.setColumnCount(2)

        self.table1.setItem(0, 0,
                            QtGui.QTableWidgetItem("Number of Loops [-]"))
        self.table1.setItem(0, 1, QtGui.QTableWidgetItem("4"))
        self.table1.setItem(1, 0, QtGui.QTableWidgetItem("HR [bpm]"))
        self.table1.setItem(1, 1, QtGui.QTableWidgetItem("70"))
        self.table1.setItem(2, 0, QtGui.QTableWidgetItem("V (LV) start [ml]"))
        self.table1.setItem(2, 1, QtGui.QTableWidgetItem("135"))
        self.table1.setItem(3, 0, QtGui.QTableWidgetItem("Pa start [mmHg]"))
        self.table1.setItem(3, 1, QtGui.QTableWidgetItem("96"))
        self.table1.setItem(4, 0, QtGui.QTableWidgetItem("Pv start [mmHg]"))
        self.table1.setItem(4, 1, QtGui.QTableWidgetItem("6"))

        self.table2.setItem(0, 0, QtGui.QTableWidgetItem("Rp"))
        self.table2.setItem(0, 1, QtGui.QTableWidgetItem("1.3"))
        self.table2.setItem(1, 0, QtGui.QTableWidgetItem("Ra"))
        self.table2.setItem(1, 1, QtGui.QTableWidgetItem("0.1"))
        self.table2.setItem(2, 0, QtGui.QTableWidgetItem("Rin"))
        self.table2.setItem(2, 1, QtGui.QTableWidgetItem("0.08782"))
        self.table2.setItem(3, 0, QtGui.QTableWidgetItem("Ca"))
        self.table2.setItem(3, 1, QtGui.QTableWidgetItem("1.601"))
        self.table2.setItem(4, 0, QtGui.QTableWidgetItem("Cv"))
        self.table2.setItem(4, 1, QtGui.QTableWidgetItem("1.894"))
        self.table2.setItem(5, 0, QtGui.QTableWidgetItem("Vd"))
        self.table2.setItem(5, 1, QtGui.QTableWidgetItem("1.123"))
        self.table2.setItem(6, 0, QtGui.QTableWidgetItem("Emax"))
        self.table2.setItem(6, 1, QtGui.QTableWidgetItem("1.5"))
        self.table2.setItem(7, 0, QtGui.QTableWidgetItem("Emin"))
        self.table2.setItem(7, 1, QtGui.QTableWidgetItem("0.037"))

        self.setCentralWidget(splitterH)

        self.setContentsMargins(10, 5, 10, 5)
        self.setGeometry(100, 100, 1000, 800)

        # File menu
        file_menu = self.menuBar().addMenu("File")
        quit_action = create_action(self,
                                    "Quit",
                                    shortcut="Ctrl+Q",
                                    icon=get_std_icon("DialogCloseButton"),
                                    tip="Quit application",
                                    triggered=self.close)
        add_actions(file_menu, (quit_action, ))
Exemplo n.º 9
0
    def __init__(self,
                 parent=None,
                 title="",
                 xlabel=("", ""),
                 ylabel=("", ""),
                 zlabel=None,
                 xunit=("", ""),
                 yunit=("", ""),
                 zunit=None,
                 yreverse=True,
                 colormap="jet",
                 aspect_ratio=1.0,
                 lock_aspect_ratio=True,
                 show_contrast=False,
                 show_itemlist=False,
                 show_xsection=False,
                 show_ysection=False,
                 xsection_pos="top",
                 ysection_pos="right",
                 gridparam=None,
                 curve_antialiasing=None,
                 **kwargs):
        if PYQT5:
            super(BaseImageWidget, self).__init__(parent, **kwargs)
            self.setOrientation(Qt.Vertical)
        else:
            QSplitter.__init__(self, Qt.Vertical, parent)

        self.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)

        self.sub_splitter = QSplitter(Qt.Horizontal, self)
        self.plot = ImagePlot(parent=self,
                              title=title,
                              xlabel=xlabel,
                              ylabel=ylabel,
                              zlabel=zlabel,
                              xunit=xunit,
                              yunit=yunit,
                              zunit=zunit,
                              yreverse=yreverse,
                              aspect_ratio=aspect_ratio,
                              lock_aspect_ratio=lock_aspect_ratio,
                              gridparam=gridparam)
        if curve_antialiasing is not None:
            self.plot.set_antialiasing(curve_antialiasing)

        from guiqwt.cross_section import YCrossSection
        self.ycsw = YCrossSection(self,
                                  position=ysection_pos,
                                  xsection_pos=xsection_pos)
        self.ycsw.setVisible(show_ysection)

        from guiqwt.cross_section import XCrossSection
        self.xcsw = XCrossSection(self)
        self.xcsw.setVisible(show_xsection)

        self.xcsw.SIG_VISIBILITY_CHANGED.connect(self.xcsw_is_visible)

        self.xcsw_splitter = QSplitter(Qt.Vertical, self)
        if xsection_pos == "top":
            self.xcsw_splitter.addWidget(self.xcsw)
            self.xcsw_splitter.addWidget(self.plot)
        else:
            self.xcsw_splitter.addWidget(self.plot)
            self.xcsw_splitter.addWidget(self.xcsw)
        self.xcsw_splitter.splitterMoved.connect(
            lambda pos, index: self.adjust_ycsw_height())

        self.ycsw_splitter = QSplitter(Qt.Horizontal, self)
        if ysection_pos == "left":
            self.ycsw_splitter.addWidget(self.ycsw)
            self.ycsw_splitter.addWidget(self.xcsw_splitter)
        else:
            self.ycsw_splitter.addWidget(self.xcsw_splitter)
            self.ycsw_splitter.addWidget(self.ycsw)

        configure_plot_splitter(self.xcsw_splitter,
                                decreasing_size=xsection_pos == "bottom")
        configure_plot_splitter(self.ycsw_splitter,
                                decreasing_size=ysection_pos == "right")

        self.sub_splitter.addWidget(self.ycsw_splitter)

        self.itemlist = PlotItemList(self)
        self.itemlist.setVisible(show_itemlist)
        self.sub_splitter.addWidget(self.itemlist)

        # Contrast adjustment (Levels histogram)
        from guiqwt.histogram import ContrastAdjustment
        self.contrast = ContrastAdjustment(self)
        self.contrast.setVisible(show_contrast)
        self.addWidget(self.contrast)

        configure_plot_splitter(self)
        configure_plot_splitter(self.sub_splitter)
Exemplo n.º 10
0
    def __init__(self):
        # init main panel
        QMainWindow.__init__(self)
        Thread.__init__(self)
        widget = QWidget()
        self.setCentralWidget(widget)

        # define main objects
        self.remoteKoala = None
        self.aberrationCorrection = None
        self.stackDistance = None
        self.tracking = None
        self.db = None
        self.focusPoint = None
        self.trackingMode = 0  # 0 - Automatic, 1 - Single
        self.unwrapK = None
        self.setWindowTitle('3D tracking')

        # init dataset from gui_construction
        self.gb_dhm = DataSetEditGroupBox("DHM",
                                          gui_construction.DHMParameters,
                                          comment='')
        self.gb_sample = DataSetEditGroupBox("Sample",
                                             gui_construction.SampleParameters,
                                             comment='')
        self.gb_remote = DataSetEditGroupBox("Sequence",
                                             gui_construction.RemoteParameters,
                                             comment='')
        self.gb_holder = DataSetEditGroupBox("Focus",
                                             gui_construction.HolderParameters,
                                             comment='')
        self.gb_rec = DataSetEditGroupBox(
            "Preprocessing Parameters",
            gui_construction.ReconstructionParameters,
            comment='')
        #        self.gb_proc = DataSetEditGroupBox("Process",
        #                    gui_construction.ProcessParameters, comment='')
        #        self.gb_partchoice = DataSetEditGroupBox("Particle Choice",
        #                    gui_construction.ParticuleChoice, comment='')

        # associate events to dataset apply buttons
        self.connect(self.gb_dhm, SIGNAL("apply_button_clicked()"),
                     self.update_dhm_params)
        self.connect(self.gb_sample, SIGNAL("apply_button_clicked()"),
                     self.update_sample_params)
        self.connect(self.gb_remote, SIGNAL("apply_button_clicked()"),
                     self.update_remote_params)
        self.connect(self.gb_holder, SIGNAL("apply_button_clicked()"),
                     self.update_holder_params)

        # organize the subpanels
        splitter1 = QSplitter(QtCore.Qt.Vertical)
        splitter1.addWidget(self.gb_dhm)
        splitter1.addWidget(self.gb_sample)
        splitter1.addWidget(self.gb_remote)
        splitter1.addWidget(self.gb_holder)

        splitter2 = QSplitter(QtCore.Qt.Vertical)

        splitter = QSplitter(self)
        splitter.addWidget(splitter1)
        splitter.addWidget(splitter2)
        self.setCentralWidget(splitter)
        self.setContentsMargins(10, 5, 10, 5)

        # get all params from datasets
        self.gb_dhm.get()
Exemplo n.º 11
0
    def __init__(self):
        QMainWindow.__init__(self)
        self.setWindowIcon(get_icon('python.png'))
        self.setWindowTitle("Electric motor simulator")

        # Dataset for editing motor parameters
        self.groupbox1 = DataSetShowGroupBox("Motor parameters",
                                             ExampleDataSet,
                                             comment='')
        self.groupbox2 = DataSetShowGroupBox("Controller parameters",
                                             AnotherDataSet,
                                             comment='')
        self.groupbox3 = DataSetEditGroupBox("Standard dataset",
                                             OtherDataSet,
                                             comment='')
        self.groupbox4 = DataSetEditGroupBox("Standard dataset",
                                             ExampleMultiGroupDataSet,
                                             comment='')
        #self.groupbox3.SIG_APPLY_BUTTON_CLICKED.connect(self.update_window)
        self.update_groupboxes()

        splitter = QSplitter(self)
        splitter.addWidget(self.groupbox1)
        splitter.addWidget(self.groupbox2)
        #splitter.addWidget(self.groupbox3)
        #splitter.addWidget(self.groupbox4)
        self.setCentralWidget(splitter)
        self.setContentsMargins(10, 5, 10, 5)

        # File menu
        file_menu = self.menuBar().addMenu("File")
        quit_action = create_action(self,
                                    "Quit",
                                    shortcut="Ctrl+Q",
                                    icon=get_std_icon("DialogCloseButton"),
                                    tip="Quit application",
                                    triggered=self.close)
        add_actions(file_menu, (quit_action, ))

        # Edit menu
        edit_menu = self.menuBar().addMenu("Edit")
        editparam1_action = create_action(self,
                                          "Edit dataset 1",
                                          triggered=self.edit_dataset1)
        editparam2_action = create_action(self,
                                          "Edit dataset 2",
                                          triggered=self.edit_dataset2)
        editparam4_action = create_action(self,
                                          "Edit dataset 4",
                                          triggered=self.edit_dataset4)
        add_actions(edit_menu,
                    (editparam1_action, editparam2_action, editparam4_action))

        # Toolbar
        tb = self.addToolBar("Tools")
        reset = QAction("Reset", self)
        tb.addAction(reset)
        pause = QAction("Pause", self)
        tb.addAction(pause)
        step = QAction("Step", self)
        tb.addAction(step)
        go = QAction("Go", self)
        tb.addAction(go)
Exemplo n.º 12
0
    def __init__(self,
                 parent,
                 axisLimits=None,
                 plots=[[{
                     'name': 'P1',
                     'curves': ['C1', 'C2']
                 }]]):
        QSplitter.__init__(self, parent)
        self.parent = parent

        self.plots = [p for c in plots for r in c for p in r['curves']]
        self.active = None
        self.axisLimits = axisLimits

        self.xylim = XYlim()
        Filter = FilterWidget()

        # Curve panels (plots)
        Hsplit = QSplitter(self)
        self.curves = None
        self.panels = []

        for columns in plots:
            column = QSplitter(self)
            column.setOrientation(Qt.Vertical)
            column.setChildrenCollapsible(False)

            for rows in columns:
                panel = cPlot(column,
                              title=rows['name'],
                              xlabel="\u0394f [MHz]",
                              ylabel="Count",
                              updateWidgets=self.xylim.updateWidgets)
                panel.name = rows['name']
                panel.setDefaultAxis(self.axisLimits)
                panel.curves = {
                    p: cItem(filterfun=Filter.filterfun)
                    for p in rows['curves']
                }

                if self.curves is None: self.curves = panel.curves
                else: self.curves.update(panel.curves)

                for n in panel.curves:
                    p = panel.curves[n]
                    p.title().setText(n)
                    p.set_data([0], [0])
                    p.setPen(QPen(Qt.black, 1))
                    p.parent = panel
                    panel.add_item(p)

                column.addWidget(panel)
                self.panels.append(panel)

            Hsplit.addWidget(column)

        self.addWidget(Hsplit)

        Hsplit = QSplitter(self)
        Hsplit.addWidget(self.xylim)
        Hsplit.addWidget(Filter)
        self.addWidget(Hsplit)
        self.setOrientation(Qt.Vertical)
Exemplo n.º 13
0
    def __init__(self,
                 parent,
                 name='Panel',
                 plots=[[['Cold', 1], ['Hot', 1]],
                        [['Antenna', 2], ['Reference', 1]]]):
        QSplitter.__init__(self, parent)
        self.parent = parent
        self.name = name
        self.plots = [i[0] for o in plots
                      for i in o]  # make the name's list flat

        self.active = None
        self.evnt = None

        self.xylim = self.XYlim()

        # Curve panels (plots)
        Hsplit = QSplitter(self)
        plotColumns = [QSplitter(self) for n in plots]

        for rows, c in zip(plots, plotColumns):
            c.setOrientation(Qt.Vertical)
            c.setChildrenCollapsible(False)

            c.cwidgets = [
                self.cplot(c,
                           xlabel=u"\u0394f [MHz]",
                           ylabel="Count",
                           updateWidgets=self.xylim.updateWidgets)
                for i in rows
            ]
            c.plots = [[CurveItem(CurveParam()) for j in range(i[1])]
                       for i in rows]

            for m, cw in enumerate(c.cwidgets):
                cw.set_title(rows[m][0])
                for p in c.plots[m]:
                    p.set_data([0], [0])
                    p.parent = cw
                    cw.add_item(p)
#				cw.set_axis_limits(BasePlot.Y_LEFT,0,1)
#				cw.set_axis_limits(BasePlot.X_BOTTOM,-750,750)
                cw.setDefaultAxis([-750, 750, 0, 1])
                c.addWidget(cw)

            Hsplit.addWidget(c)

        self.addWidget(Hsplit)
        self.addWidget(self.xylim)
        self.setOrientation(Qt.Vertical)

        self.curvePanels = dict(
            zip(self.plots, sum([c.cwidgets for c in plotColumns], [])))
        self.curves = dict(
            zip(self.plots, [i for o in plotColumns for i in o.plots]))

        for nm in self.plots:
            for p in self.curves[nm]:
                p.setPen(QPen(Qt.blue, 1))

        plotColumns[0].cwidgets[0].setActive()
Exemplo n.º 14
0
    def __init__(self,
                 parent,
                 spec=None,
                 axisLimits=[0, 40, 0, 400],
                 plots=[[{
                     'name': 'Raw spectra',
                     'curves': ['Cold', 'Hot', 'Antenna']
                 }, {
                     'name': 'System noise',
                     'curves': ['Noise']
                 }],
                        [{
                            'name': 'Calibrated',
                            'curves': ['Calibrated']
                        }, {
                            'name': 'Integrated',
                            'curves': ['Integrated']
                        }]]):
        QSplitter.__init__(self, parent)
        self.parent = parent
        self.spec = spec
        self.name = self.spec.name if self.spec else 'Spectrometer'

        self.plots = [p for c in plots for r in c for p in r['curves']]

        self.Pc = self.Ph = self.Pa = self.Ta = self.Ti = self.Tr = None
        self._mean = {'count': 0, 'mean': 0}
        self.chopper_pos = None

        self.active = None
        self.axisLimits = axisLimits

        self.xylim = XYlim()

        Filter = FilterWidget()

        # Curve panels (plots)
        Hsplit = QSplitter(self)
        self.curves = None
        self.panels = []

        for columns in plots:
            column = QSplitter(self)
            column.setOrientation(Qt.Vertical)
            column.setChildrenCollapsible(False)

            for rows in columns:
                panel = cPlot(column,
                              title=rows['name'],
                              xlabel="\u0394f [MHz]",
                              ylabel="Count",
                              updateWidgets=self.xylim.updateWidgets)
                panel.name = rows['name']
                panel.setDefaultAxis(self.axisLimits)
                panel.curves = {
                    p: cItem(filterfun=Filter.filterfun)
                    for p in rows['curves']
                }

                if self.curves is None: self.curves = panel.curves
                else: self.curves.update(panel.curves)

                for n in panel.curves:
                    p = panel.curves[n]
                    p.title().setText(n)
                    p.set_data([0], [0])
                    p.setPen(QPen(Qt.black, 1))
                    p.parent = panel
                    panel.add_item(p)

                column.addWidget(panel)
                self.panels.append(panel)

            Hsplit.addWidget(column)

        self.addWidget(Hsplit)

        Hsplit = QSplitter(self)
        Hsplit.addWidget(self.xylim)
        Hsplit.addWidget(Filter)
        self.addWidget(Hsplit)
        self.setOrientation(Qt.Vertical)

        self.curves['Cold'].setPen(QPen(Qt.blue, 1))
        self.curves['Hot'].setPen(QPen(Qt.red, 1))

        self.curves['Calibrated'].parent.set_titles(ylabel=u'Temperature')
        self.curves['Integrated'].parent.set_titles(ylabel=u'Temperature')
        self.curves['Noise'].parent.set_titles(ylabel=u'Temperature')

        cPanel = self.curves['Cold'].parent
        cPanel.add_item(make.legend("BL"))
        cPanel.setActive()
Exemplo n.º 15
0
    def __init__(self):
        QMainWindow.__init__(self)
        self.setWindowIcon(get_icon('python.png'))
        self.setWindowTitle("Stroke Work Estimation")

        pal = QtGui.QPalette()
        role = QtGui.QPalette.Background
        pal.setColor(role, QtGui.QColor(255, 255, 255))
        self.setPalette(pal)

        self.textEdit = QtGui.QLabel('None')

        self.loadButton = QtGui.QPushButton("Compute")
        self.loadButton.clicked.connect(self.on_click)
        self.buttonSave = QtGui.QPushButton('Clear Plot', self)
        self.buttonSave.clicked.connect(self.clearPlots)

        self.dropDownMenu = QtGui.QComboBox()
        self.dropDownMenu.addItems(
            ["Vao", "Vvc", "Vpa", "Vpu", "Vlv", "Vrv", "all"])

        self.table1 = QtGui.QTableWidget()
        self.table2 = QtGui.QTableWidget()

        self.fileName = ''
        self.lastClicked = []
        self.number_plots = 0

        self.pw1 = PG.PlotWidget(name='VTC')
        self.pw1.setLabel('left', 'Pressure', units='mmHg')
        self.pw1.setLabel('bottom', 'Volume', units='mL')
        self.pw1.setBackground((255, 255, 255))

        self.pw2 = PG.PlotWidget(name='VTC')
        self.pw2.setBackground((255, 255, 255))
        self.pw2.setLabel('left', 'Pressure', units='mmHg')
        self.pw2.setLabel('bottom', 'Time', units='s')

        self.pw3 = PG.PlotWidget(name='PV')
        self.pw3.setBackground((255, 255, 255))
        self.pw3.setLabel('left', 'Pressure', units='mmHg')
        self.pw3.setLabel('bottom', 'Volume', units='ml')

        #horizontalLayout = QtGui.QHBoxLayout(self)
        splitter = QSplitter(QtCore.Qt.Vertical)
        splitter2 = QSplitter(QtCore.Qt.Vertical)
        splitterH = QSplitter(QtCore.Qt.Horizontal)

        #splitter.addWidget(self.dropDownMenu)
        splitter.addWidget(self.loadButton)
        splitter.addWidget(self.pw1)
        splitter.addWidget(self.pw2)
        #        splitter.addWidget(self.pw3)

        splitter2.addWidget(self.table1)
        splitter2.addWidget(self.table2)
        splitter2.addWidget(self.buttonSave)

        splitterH.addWidget(splitter)
        splitterH.addWidget(splitter2)

        self.table1.setRowCount(9)
        self.table1.setColumnCount(2)

        self.table2.setRowCount(11)
        self.table2.setColumnCount(2)

        self.table1.setItem(0, 0, QtGui.QTableWidgetItem("Eao"))
        self.table1.setItem(0, 1, QtGui.QTableWidgetItem("1.0"))
        self.table1.setItem(1, 0, QtGui.QTableWidgetItem("Evc"))
        self.table1.setItem(1, 1, QtGui.QTableWidgetItem("1.0"))
        self.table1.setItem(2, 0, QtGui.QTableWidgetItem("Rmt"))
        self.table1.setItem(2, 1, QtGui.QTableWidgetItem("0.1"))
        self.table1.setItem(3, 0, QtGui.QTableWidgetItem("Rao"))
        self.table1.setItem(3, 1, QtGui.QTableWidgetItem("0.1"))

        self.table1.setItem(5, 0, QtGui.QTableWidgetItem("P max"))
        self.table1.setItem(5, 1, QtGui.QTableWidgetItem("100"))
        self.table1.setItem(6, 0, QtGui.QTableWidgetItem("V max"))
        self.table1.setItem(6, 1, QtGui.QTableWidgetItem("100"))
        self.table1.setItem(7, 0, QtGui.QTableWidgetItem("V min"))
        self.table1.setItem(7, 1, QtGui.QTableWidgetItem("70"))
        self.table1.setItem(8, 0, QtGui.QTableWidgetItem("T"))
        self.table1.setItem(8, 1, QtGui.QTableWidgetItem("0.5"))

        ####
        self.table2.setItem(0, 0, QtGui.QTableWidgetItem("SW 1"))
        self.table2.setItem(0, 1, QtGui.QTableWidgetItem("-"))
        self.table2.setItem(1, 0, QtGui.QTableWidgetItem("SW 2"))
        self.table2.setItem(1, 1, QtGui.QTableWidgetItem("-"))
        self.table2.setItem(2, 0, QtGui.QTableWidgetItem("SW 3"))
        self.table2.setItem(2, 1, QtGui.QTableWidgetItem("-"))

        self.table2.setItem(4, 0, QtGui.QTableWidgetItem("Elv"))
        self.table2.setItem(4, 1, QtGui.QTableWidgetItem("-"))
        self.table2.setItem(5, 0, QtGui.QTableWidgetItem("Rsys"))
        self.table2.setItem(5, 1, QtGui.QTableWidgetItem("-"))
        self.table2.setItem(6, 0, QtGui.QTableWidgetItem("SBV"))
        self.table2.setItem(6, 1, QtGui.QTableWidgetItem("-"))

        self.table2.setItem(8, 0, QtGui.QTableWidgetItem("error"))
        self.table2.setItem(8, 1, QtGui.QTableWidgetItem("-"))

        self.setCentralWidget(splitterH)

        self.setContentsMargins(10, 5, 10, 5)
        self.setGeometry(100, 100, 1000, 800)

        # File menu
        file_menu = self.menuBar().addMenu("File")
        quit_action = create_action(self,
                                    "Quit",
                                    shortcut="Ctrl+Q",
                                    icon=get_std_icon("DialogCloseButton"),
                                    tip="Quit application",
                                    triggered=self.close)
        add_actions(file_menu, (quit_action, ))