Beispiel #1
0
    def gui(self):
        s=g.settings['annotator']
        self.gui_reset()
        #windows
        self.window_button = WindowSelector()

        #buttons         
        self.addIndex_button = QPushButton('Add Index')
        self.addIndex_button.pressed.connect(self.addIndex)  
        
        #boxes
        self.fontSize_slider = pg.SpinBox(int=True, step=1)
        self.fontSize_slider.setValue(s['fontSize'])
        
        self.fontColour_combobox = pg.ComboBox()
        self.fontColours = {'white': 1, 'black': 2}
        self.fontColour_combobox.setItems(self.fontColours)  
        
        self.textPosition_combobox = pg.ComboBox()
        self.textPosition = {'ms': 1, 'ma': 2, 'ls': 3, 'mb': 4, 'mt': 5, 'mm': 6, 'md': 7, 'rs': 8}
        self.textPosition_combobox.setItems(self.textPosition)         

        
        #self.exportFolder = FolderSelector('*.txt')
        self.items.append({'name': 'window', 'string': 'Select Window', 'object': self.window_button})
        self.items.append({'name': 'fontSize', 'string': 'Font Size', 'object': self.fontSize_slider})  
        self.items.append({'name': 'fontColour', 'string': 'Font Colour', 'object': self.fontColour_combobox}) 
        self.items.append({'name': 'textPosition', 'string': 'Anchor Position', 'object': self.textPosition_combobox})         
        self.items.append({'name': 'addIndex', 'string': 'Add Numbers to Image Stack ', 'object': self.addIndex_button})       
        super().gui()
Beispiel #2
0
    def snippet_menu(self):
        layout = QtWidgets.QVBoxLayout()

        snippet_options = pg.ComboBox()
        snippet_options.setItems(snippets)
        layout.addWidget(snippet_options)

        editor = Scintilla_Code_Editor()
        lexer = Monokai_Python_Lexer(editor)
        editor.setLexer(lexer)
        update_text = lambda *args: editor.setText(
            build_full_snippet(snippet_options.currentText()))
        update_text()
        snippet_options.currentIndexChanged.connect(update_text)
        layout.addWidget(editor)

        copy_btn = QtWidgets.QPushButton("Add to code")
        # def copy_to_cliboard():
        #     clipboard = QtWidgets.QApplication.instance().clipboard()
        #     clipboard.setText(snippet_options.value())
        # copy_btn.clicked.connect(copy_to_cliboard)

        mod_code = lambda: self.code_editor.widget.setText(
            modify_code(self.code_editor.widget.text(),
                        snippet_options.currentText()))
        copy_btn.clicked.connect(mod_code)
        layout.addWidget(copy_btn)

        w = QtWidgets.QWidget()
        w.setLayout(layout)
        return w
Beispiel #3
0
 def __init__(self, data_buffer_length):
   super(GraphViewer, self).__init__()
   
   self.buffer_samples = data_buffer_length 
   
   # Define the number of graphs in the grid:
   graphs_vertical = 2
   graphs_horizontal = 2
   
   # Appearance settings:
   self.pen_style = pg.mkPen(color="y", width=2, style=QtCore.Qt.SolidLine)
   self.title_color = "w"
   self.title_size = "13pt"
   self.axis_color = "w"
   self.axis_label_style = {'color': '#FFF', 'font-size': '11pt'}
   self.x_grid = False
   self.y_grid = False
   
   # Labels and measurement units for display
   self.C_label = "\u00B0C"
   self.F_label = "\u00B0F"
   self.SDS_unit = "\u00B5g/m\u00B3"
   self.PPD_unit = "ppL"
   self.names_units = OrderedDict([('Temperature', self.C_label),
     ('Pressure', 'Pa'),('Humidity', '%'),('Gas sensor resistance', "\u03A9"),
     ('Air Quality Index', ''),('Estimated CO\u2082', 'ppm'),('Equivalent breath VOC', 'ppm'),
     ('Air quality accuracy', ''),('Illuminance', 'lux'),('White light level', ''),
     ('Sound pressure level', 'dBA'),('Band 1 SPL', 'dB'),('Band 2 SPL', 'dB'),
     ('Band 3 SPL', 'dB'),('Band 4 SPL', 'dB'),('Band 5 SPL', 'dB'),
     ('Band 6 SPL', 'dB'),('Peak sound amplitude', 'mPa'),('Microphone initialized', ''),
     ('Particle sensor duty cycle', '%'),('Particle concentration', self.PPD_unit),
     ('Particle data valid', '')])
   self.decimal_places = [1,0,1,0,1,1,2,0,2,0,1,1,1,1,1,1,1,2,0,2,2,0]
   self.sound_band_number = 6
 
   # Construct the user interface
   self.setWindowTitle('Waiting for data...')
   self.widget = QtGui.QWidget()
   self.setCentralWidget(self.widget)
   self.widget.setLayout(QtGui.QGridLayout())
   self.graph_var_numbers = [] 
   self.selected_var_numbers = []
   self.plot_items = []
   self.plot_handles = []
   self.combos = []
   self.is_bar_chart = []
   for nv in range(0,graphs_vertical):
     for nh in range(0,graphs_horizontal):
       GLW = pg.GraphicsLayoutWidget()
       combo = pg.ComboBox()
       self.combos.append(combo)
       self.widget.layout().addWidget(combo, (2*nv), nh) 
       self.widget.layout().addWidget(GLW, (2*nv)+1, nh) 
       new_plot = GLW.addPlot()
       self.plot_items.append(new_plot)
       self.plot_handles.append(new_plot.plot(pen=self.pen_style, 
         symbol=None, axisItems={'bottom': pg.DateAxisItem()}))
       self.formatPlotItem(new_plot)
       self.is_bar_chart.append(False)
   self.time_data = deque(maxlen=self.buffer_samples)
def test_combobox():
    cb = pg.ComboBox()
    items = {'a': 1, 'b': 2, 'c': 3}
    cb.setItems(items)
    cb.setValue(2)
    assert str(cb.currentText()) == 'b'
    assert cb.value() == 2

    # Clear item list; value should be None
    cb.clear()
    assert cb.value() == None

    # Reset item list; value should be set automatically
    cb.setItems(items)
    assert cb.value() == 2

    # Clear item list; repopulate with same names and new values
    items = {'a': 4, 'b': 5, 'c': 6}
    cb.clear()
    cb.setItems(items)
    assert cb.value() == 5

    # Set list instead of dict
    cb.setItems(list(items.keys()))
    assert str(cb.currentText()) == 'b'

    cb.setValue('c')
    assert cb.value() == str(cb.currentText())
    assert cb.value() == 'c'

    cb.setItemValue('c', 7)
    assert cb.value() == 7
Beispiel #5
0
    def init_gui(self):
        self.win = pg.GraphicsWindow(title="Memory trace graph plugin")

        self.mem_combo_box = pg.ComboBox()
        self.mem_combo_box.setItems(["All", "Reads", "Writes"])
        self.mem_combo_box.currentIndexChanged.connect(self.mem_combo_box_changed)
        self.proxy = QGraphicsProxyWidget()
        self.proxy.setWidget(self.mem_combo_box)
        self.layout = self.win.addLayout(row=0, col=0)
        self.layout.addItem(self.proxy)

        self.plot_item = self.win.addPlot(title="Memory trace graph", row=1, col=0)
        self.plot_item.setLabel("left", "Memory address index")
        self.plot_item.setLabel("bottom", "Trace row id")

        self.scatter_plot_reads = pg.ScatterPlotItem(symbol="o")
        self.scatter_plot_reads.setBrush(None)
        self.scatter_plot_reads.setPen("g")
        self.scatter_plot_reads.sigClicked.connect(self.sig_clicked)

        self.scatter_plot_writes = pg.ScatterPlotItem(symbol="o")
        self.scatter_plot_writes.setBrush("r")
        self.scatter_plot_writes.setPen("r")
        self.scatter_plot_writes.sigClicked.connect(self.sig_clicked)

        self.plot_item.addItem(self.scatter_plot_writes)
        self.plot_item.addItem(self.scatter_plot_reads)

        self.plot_item.showGrid(y=True, x=True, alpha=1.0)
    def __init__(self, serial):

        pg.LayoutWidget.__init__(self)

        self.setWindowTitle('DistanceV2 Plotting')
        self.resize(900, 900)
        self.serial = serial

        self.serial_a = pg.ComboBox(self)
        self.addWidget(self.serial_a, row=0, col=0)

        self.serial_b = pg.ComboBox(self)
        self.addWidget(self.serial_b, row=0, col=1)

        self.add_button = QtGui.QPushButton('Add')
        self.add_button.clicked.connect(self.add_plot)
        self.addWidget(self.add_button, row=0, col=2)

        self.twr_graph = pg.PlotWidget(name='TWR', title='Distance (m) vs Time (s)')
        self.legend = self.twr_graph.addLegend()
        self.twr_graph.showGrid(x=True, y=True)
        self.addWidget(self.twr_graph, row=1, col=0, colspan=3)
        self.twr_plot_line = dict()
        self.twr_ordered_data = dict()

        self.quality_graph = pg.PlotWidget(title='Quality vs Time (s)')
        self.quality_graph.showGrid(x=True, y=True)
        self.quality_graph.setXLink('TWR')
        self.quality_graph.setYRange(0, 1)
        self.addWidget(self.quality_graph, row=2, col=0, colspan=3)
        self.quality_plot_line = dict()
        self.quality_ordered_data = dict()

        self.colors = ['r', 'g', 'b', 'c', 'm', 'y', 'w']
        self.color_offset = 0

        self.show()

        self.available_nodes = []
        self.twr_pairs = np.empty((0,2))
        self.dist_prev_count = UwbNetwork.nodes[self.serial].cdp_pkts_count[self.type]
        self.timer = self.startTimer(QPLOT_FREQUENCY)
Beispiel #7
0
    def __init__(self, **kwd):
        super(AIWindow, self).__init__(**kwd)
        self.main_layout = main_layout = QtGui.QHBoxLayout()
        self.setLayout(main_layout)
        btn_layout = QtGui.QVBoxLayout()
        main_layout.addLayout(btn_layout)

        start_stop_save_layout = QtGui.QHBoxLayout()
        btn_layout.addLayout(start_stop_save_layout)

        self.start_stop_buttons = PlotterStartStopPauseSave(
            layout=start_stop_save_layout, parent=self)

        self.sample_rate = pg.SpinBox(value=1000,
                                      step=1,
                                      dec=True,
                                      int=True,
                                      siPrefix=True,
                                      bounds=[1, 100000],
                                      suffix='S/s')
        tmp = pg.LayoutWidget()
        tmp.addWidget(pg.QtGui.QLabel('Sample rate'), col=0)
        tmp.addWidget(self.sample_rate, col=1)
        btn_layout.addWidget(tmp)

        self.duration = pg.SpinBox(value=10,
                                   dec=True,
                                   step=1,
                                   bounds=[1, 10000],
                                   suffix=' s')
        tmp = pg.LayoutWidget()
        tmp.addWidget(pg.QtGui.QLabel('Acquisition duration'), col=0)
        tmp.addWidget(self.duration, col=1)
        btn_layout.addWidget(tmp)

        ai = AIConnection(with_enable_button=False)
        btn_layout.addWidget(ai.make_layout())
        self.ai = ai

        self.channels = []
        self.channel_items = ["off", "0", "1", "2", "3"]
        for i in range(4):
            chan = pg.ComboBox(
                items=self.channel_items,
                default=self.channel_items[1] if i == 0 else None)
            self.channels.append(chan)
            btn_layout.addWidget(chan)

        btn_layout.addStretch(1)

        self.add_plot_widgets()
        if self.parent():
            self.start_stop_buttons.connect(self.parent().new_tab_state)
Beispiel #8
0
    def __init__(self, sem_id, config, parent=None):
        super(ImageEditor, self).__init__(parent=parent)
        self.img = None
        self.sem_id = sem_id
        self.modifications = []
        self.config = config

        self.mod_dict = {
            'Filter Pattern': FilterPattern,
            'Draw Scale': DrawScale,
            'Crop': Crop,
            'Remove Scale': RemoveScale
        }

        self.wComboBox = pg.ComboBox()
        for item in sorted(list(self.mod_dict)):
            self.wComboBox.addItem(item)

        self.wAddMod = QtGui.QPushButton('Add')
        self.wAddMod.clicked.connect(lambda: self.addMod(mod=None))

        self.wRemoveMod = QtGui.QPushButton('Remove')
        self.wRemoveMod.clicked.connect(self.removeMod)

        self.wReview = QtGui.QPushButton('Review')
        self.wReview.clicked.connect(self.review)

        self.wModList = QtGui.QListWidget()
        self.wModList.setSelectionMode(QtGui.QAbstractItemView.SingleSelection)
        self.wModList.currentRowChanged.connect(self.selectMod)

        self.wDetail = QtGui.QStackedWidget()

        self.imgItem = pg.ImageItem()
        self.imgBox = pg.GraphicsLayoutWidget()
        self.imgBox_VB = self.imgBox.addViewBox(row=1, col=1)
        self.imgBox_VB.addItem(self.imgItem)
        self.imgBox_VB.setAspectLocked(True)

        self.contentWidget = QtGui.QWidget()
        self.layout = QtGui.QGridLayout(self.contentWidget)
        self.layout.setAlignment(QtCore.Qt.AlignTop)
        self.setWidgetResizable(True)
        self.setWidget(self.contentWidget)

        self.layout.addWidget(self.wAddMod, 0, 0, 1, 1)
        self.layout.addWidget(self.wModList, 1, 0, 1, 1)
        self.layout.addWidget(self.wRemoveMod, 2, 0, 1, 1)
        self.layout.addWidget(self.wComboBox, 3, 0, 1, 1)
        self.layout.addWidget(self.wReview, 4, 0, 1, 1)
        self.layout.addWidget(self.imgBox, 0, 1, 4, 1)
        self.layout.addWidget(self.wDetail, 0, 2, 4, 1)
    def __init__(self):

        pg.LayoutWidget.__init__(self)

        self.setWindowTitle('CUWB Monitor - Specific Distances Plotting')
        self.resize(900, 500)

        self.serial_a = pg.ComboBox(self)
        self.addWidget(self.serial_a, row=0, col=0)

        self.serial_b = pg.ComboBox(self)
        self.addWidget(self.serial_b, row=0, col=1)

        self.add_button = QtGui.QPushButton('Add')
        self.add_button.clicked.connect(self.add_plot)
        self.addWidget(self.add_button, row=0, col=2)

        self.distance_graph = pg.PlotWidget(title='Distance (m) vs Time (s)')
        self.legend = self.distance_graph.addLegend()
        self.distance_graph.showGrid(x=True, y=True)
        self.addWidget(self.distance_graph, row=1, col=0, colspan=3)

        self.available_devices = []
        self.device_pairs = []
        self.distance_data = dict()
        self.timestamp_data = dict()
        self.distance_plots = dict()
        self.colors = [
            'r', 'g', 'b', 'c', 'm', 'y', 's', (0, 51, 0), (127, 0, 255),
            (255, 127, 0), (0, 255, 127), (102, 0, 0), 'w', 'l'
        ]
        self.color_offset = 0

        self.show()

        self.network_serials = dict()
        self.timer = self.startTimer(QPLOT_FREQUENCY)
Beispiel #10
0
 def __init__(self, values, parent=None):
     self.values = values
     self.value_display = pg.ComboBox()
     if isinstance(self.values, OrderedDict):
         for key, value in self.values.items():
             self.value_display.addItem(str(key), str(value))
     elif isinstance(self.values, dict):
         for key, value in sorted(self.values.items()):
             self.value_display.addItem(str(key), str(value))
     elif isinstance(self.values, set):
         for value in sorted(self.values):
             self.value_display.addItem(str(value), str(value))
     elif isinstance(self.values, Iterable):
         for value in self.values:
             self.value_display.addItem(str(value), str(value))
     else:
         raise TypeError('invalid type encountered while populating values')
     super().__init__(parent=parent)
     return
Beispiel #11
0
    def _horizontal_controls_create(self):
        self._cmb_t_div = pg.ComboBox(
            items=ScopeGui._t_div_items,
            default=list(ScopeGui._t_div_items.values())[-1],
        )
        self._cmb_t_div.currentIndexChanged.connect(self._control_changed)

        self._rb_xy_ty = QtGui.QRadioButton("t-Y")
        self._rb_xy_a0a1 = QtGui.QRadioButton("X-Y (X=A0, Y=A1)")
        self._rb_xy_a0a10 = QtGui.QRadioButton("X-Y (X=A0, Y=A1-A0)")
        self._rb_xy_ty.setChecked(True)

        self._rb_xy_ty.toggled.connect(self._control_changed)
        self._rb_xy_a0a1.toggled.connect(self._control_changed)
        self._rb_xy_a0a10.toggled.connect(self._control_changed)

        layout = QtGui.QVBoxLayout()
        layout.addWidget(self._cmb_t_div)
        layout.addWidget(self._rb_xy_ty)
        layout.addWidget(self._rb_xy_a0a1)
        layout.addWidget(self._rb_xy_a0a10)
        return layout
Beispiel #12
0
    def __init__(self, units=None, parent=None, default=None):
        super().__init__(parent=parent)
        if units is None:
            units = 'dimensionless'
        self.units = units
        self.params_layout = QtWidgets.QStackedLayout()
        self.generate_range_widgets(units=units)
        self.range_func_combo = pg.ComboBox(
            items=list(self.range_widgets.keys()))
        self.range_func_combo.currentIndexChanged[str].connect(self.set_widget)

        layout = QtWidgets.QFormLayout()
        layout.addRow('Function', self.range_func_combo)
        select = QtWidgets.QWidget()
        select.setLayout(layout)
        params = QtWidgets.QWidget()
        params.setLayout(self.params_layout)
        layout = QtWidgets.QVBoxLayout()
        layout.addWidget(select)
        layout.addWidget(params)
        self.setLayout(layout)
        if not default is None:
            self.set(default)
Beispiel #13
0
    def setupUI(self):
        customLayout = QtWidgets.QVBoxLayout(self)

        customLayout.addWidget(QtWidgets.QLabel(
            'type: {}, name: {}'.format(self.type, self.name)))

        buttons = QtWidgets.QWidget()
        buttonly = QtWidgets.QHBoxLayout(buttons)
        self.initButton = QtWidgets.QPushButton('interface')
        self.initButton.setToolTip('launch interactive interface')
        self.initButton.clicked.connect(lambda: self.customInit())
        buttonly.addWidget(self.initButton)
        self.setButton = QtWidgets.QPushButton('set')
        self.setButton.clicked.connect(lambda: self.customSet())
        self.setButton.setEnabled(False)
        buttonly.addWidget(self.setButton)
        self.enableCheck = QtWidgets.QCheckBox('enable')
        self.enableCheck.clicked[bool].connect(lambda x: self.customEnable(x))
        buttonly.addWidget(self.enableCheck)
        customLayout.addWidget(buttons)

        customLayout.addWidget(QtWidgets.QLabel('Mode:'))
        self.modeComboBox = pg.ComboBox()
        customLayout.addWidget(self.modeComboBox)

        customLayout.addWidget(QtWidgets.QLabel('OpenDuration(ms):'))
        self.opentimeSpinbox = pg.SpinBox(value=20, bounds=(1, None), step=1)
        customLayout.addWidget(self.opentimeSpinbox)

        customLayout.addWidget(QtWidgets.QLabel('ShutDuration(ms):'))
        self.shuttimeSpinbox = pg.SpinBox(value=200, bounds=(1, None), step=1)
        customLayout.addWidget(self.shuttimeSpinbox)

        customLayout.addWidget(QtWidgets.QLabel('RepeatCount:'))
        self.countSpinbox = pg.SpinBox(value=1, bounds=(1, None), step=1)
        customLayout.addWidget(self.countSpinbox)

        customLayout.addWidget(QtWidgets.QLabel('Mode Info:'))
        self.modeInfoLine = QtWidgets.QLineEdit('None')
        self.modeInfoLine.setEnabled(False)
        customLayout.addWidget(self.modeInfoLine)

        customLayout.addWidget(QtWidgets.QLabel('Enable Info:'))
        self.enableInfoLine = QtWidgets.QLineEdit('False')
        self.enableInfoLine.setEnabled(False)
        customLayout.addWidget(self.enableInfoLine)

        customLayout.addWidget(QtWidgets.QLabel('OpenDuration Info(ms):'))
        self.opentimeInfoLine = QtWidgets.QLineEdit('None')
        self.opentimeInfoLine.setEnabled(False)
        customLayout.addWidget(self.opentimeInfoLine)

        customLayout.addWidget(QtWidgets.QLabel('ShutDuration Info(ms):'))
        self.shuttimeInfoLine = QtWidgets.QLineEdit('None')
        self.shuttimeInfoLine.setEnabled(False)
        customLayout.addWidget(self.shuttimeInfoLine)

        customLayout.addWidget(QtWidgets.QLabel('RepeatCount Info:'))
        self.countInfoLine = QtWidgets.QLineEdit('None')
        self.countInfoLine.setEnabled(False)
        customLayout.addWidget(self.countInfoLine)
    def gui(self):
        s = g.settings['flash_remover']
        self.gui_reset()
        self.window = WindowSelector()
        self.removeFlash_button = QPushButton('Remove Flash')
        self.removeFlash_button.pressed.connect(self.removeFlash)

        self.manuallySetFlash_check = CheckBox()
        self.manuallySetFlash_check.setValue(False)

        self.addNoise_check = CheckBox()
        self.addNoise_check.setValue(True)

        self.flashStart_slider = pg.SpinBox(int=True, step=1)
        self.flashStart_slider.setValue(0)

        self.flashEnd_slider = pg.SpinBox(int=True, step=1)
        self.flashEnd_slider.setValue(1)

        self.flashRangeStart_slider = pg.SpinBox(int=True, step=1)
        self.flashRangeStart_slider.setValue(s['flashRangeStart'])

        self.flashRangeEnd_slider = pg.SpinBox(int=True, step=1)
        self.flashRangeEnd_slider.setValue(s['flashRangeEnd'])

        self.removeMethod = pg.ComboBox()
        self.methods = {'linear interpolation': 1, 'scaling by noise': 2}
        self.removeMethod.setItems(self.methods)

        self.movingAverageWindow_slider = pg.SpinBox(int=True, step=1)
        self.movingAverageWindow_slider.setValue(s['windowSize'])

        self.plotAverage_check = CheckBox()
        self.plotAverage_check.setValue(False)

        self.useROI_check = CheckBox()
        self.useROI_check.setValue(False)

        self.items.append({
            'name': 'window',
            'string': 'Select Window',
            'object': self.window
        })
        self.items.append({
            'name': 'method',
            'string': 'Select Method',
            'object': self.removeMethod
        })
        self.items.append({
            'name': 'addNoise',
            'string': 'Add noise (linear interpolation only)',
            'object': self.addNoise_check
        })
        self.items.append({
            'name': 'blank',
            'string': '----- Manual Flash -----',
            'object': None
        })
        self.items.append({
            'name': 'manualFlash',
            'string': 'Manualy Set Flash',
            'object': self.manuallySetFlash_check
        })
        self.items.append({
            'name': 'flashStart',
            'string': 'Select Flash Start',
            'object': self.flashStart_slider
        })
        self.items.append({
            'name': 'flashEnd',
            'string': 'Select Flash End',
            'object': self.flashEnd_slider
        })
        self.items.append({
            'name': 'blank',
            'string': '----- Automatic Flash Detection -----',
            'object': None
        })
        self.items.append({
            'name': 'flashRangeStart',
            'string': 'Select Flash Range Start',
            'object': self.flashRangeStart_slider
        })
        self.items.append({
            'name': 'flashRangeEnd',
            'string': 'Select Flash Range End',
            'object': self.flashRangeEnd_slider
        })
        self.items.append({
            'name': 'windowSize',
            'string': 'Select Moving Average Window Size',
            'object': self.movingAverageWindow_slider
        })
        self.items.append({
            'name': 'useROI',
            'string': 'User defined ROI for average',
            'object': self.useROI_check
        })
        self.items.append({
            'name': 'showAverage',
            'string': 'Plot flash detection result',
            'object': self.plotAverage_check
        })

        self.items.append({
            'name': 'removeFlash_button',
            'string': '',
            'object': self.removeFlash_button
        })

        super().gui()
    # Reset item list; value should be set automatically
    cb.setItems(items)
    assert cb.value() == 2

    # Clear item list; repopulate with same names and new values
    items = {'a': 4, 'b': 5, 'c': 6}
    cb.clear()
    cb.setItems(items)
    assert cb.value() == 5

    # Set list instead of dict
    cb.setItems(list(items.keys()))
    assert str(cb.currentText()) == 'b'

    cb.setValue('c')
    assert cb.value() == str(cb.currentText())
    assert cb.value() == 'c'

    cb.setItemValue('c', 7)
    assert cb.value() == 7


if __name__ == '__main__':
    cb = pg.ComboBox()
    cb.show()
    cb.setItems({'': None, 'a': 1, 'b': 2, 'c': 3})

    def fn(ind):
        print("New value: %s" % cb.value())

    cb.currentIndexChanged.connect(fn)
Beispiel #16
0
    def gui(self):      
        self.filename = ''          
        self.gui_reset()        
        s=g.settings['puffMapper']  
        
        #buttons      
        self.plotChart_button = QPushButton('Create Line plot')
        self.plotChart_button.pressed.connect(self.plotData)  
                
        self.generateHeatmap_button = QPushButton('Create Heatmap')        
        self.generateHeatmap_button.pressed.connect(self.createHeatmap)  

                         
        #checkbox
        self.sorted_checkbox = CheckBox()
        self.sorted_checkbox.setChecked(s['sortedByMax'])

        #comboboxes
        self.xFunc_Box = pg.ComboBox()
        xFuncs = {'mean':np.mean, 'max':np.max, 'median':np.median}
        self.xFunc_Box.setItems(xFuncs)

        
        #spinboxes
        #Frames
        self.startFrame_Box = pg.SpinBox(int=True, step=1)
        self.startFrame_Box.setMinimum(0)
        self.startFrame_Box.setMaximum(1000000)  
        self.startFrame_Box.setValue(s['startFrame'])            
                
        self.nFrames_Box = pg.SpinBox(int=True, step=1)
        self.nFrames_Box.setMinimum(0)
        self.nFrames_Box.setMaximum(1000000)  
        self.nFrames_Box.setValue(s['nFrames'])          

        self.xBin_Box = pg.SpinBox(int=True, step=2)
        self.xBin_Box.setMinimum(1)
        self.xBin_Box.setMaximum(10000)  
        self.xBin_Box.setValue(s['xBin'])   

        self.yExpand_Box = pg.SpinBox(int=True, step=1)
        self.yExpand_Box.setMinimum(1)
        self.yExpand_Box.setMaximum(1000)  
        self.yExpand_Box.setValue(s['yExpand'])   


        #export file selector
        self.getFile = FileSelector()
        
        #connections
        self.getFile.valueChanged.connect(self.loadData)
           
        #################################################################
        #self.exportFolder = FolderSelector('*.txt')
        #MEPPS
        self.items.append({'name': 'blank1 ', 'string': '-------------   Parameters    ---------------', 'object': None}) 
        self.items.append({'name': 'startFrame', 'string': 'Set start frame ', 'object': self.startFrame_Box})          
        self.items.append({'name': 'nFrames', 'string': 'Set number of frames ', 'object': self.nFrames_Box}) 
        self.items.append({'name': 'xBin', 'string': 'Set x-axis binning number ', 'object': self.xBin_Box})  
        self.items.append({'name': 'xBinType', 'string': 'Set x-axis bin function ', 'object': self.xFunc_Box})  
        self.items.append({'name': 'yExpand', 'string': 'Set y-axis expansion value ', 'object': self.yExpand_Box})          
        self.items.append({'name': 'sortedByMax', 'string': 'Sorted by maximum', 'object': self.sorted_checkbox})         
        self.items.append({'name': 'blank ', 'string': '-------------------------------------------', 'object': None})           
        
        self.items.append({'name': 'filepath ', 'string': '', 'object': self.getFile})              

        self.items.append({'name': 'heatmap', 'string': '', 'object': self.generateHeatmap_button })            
        self.items.append({'name': 'lineplot', 'string': '', 'object': self.plotChart_button }) 

        
        super().gui()
        ######################################################################
        return
Beispiel #17
0
    def setupUi(self, MainWindow, step, ref):
        self.step = step
        self.ref = ref
        MainWindow.setObjectName(_fromUtf8("MainWindow"))
        MainWindow.resize(1000, 600)
        self.centralWidget = QtGui.QWidget(MainWindow)
        self.centralWidget.setObjectName(_fromUtf8("centralWidget"))

### MAIN LAYOUT ###
        self.horizontalLayout_1 = QtGui.QHBoxLayout(self.centralWidget)
        self.horizontalLayout_1.setObjectName(_fromUtf8("horizontalLayout_1"))

### LEFT SIDE LAYOUT ###
        self.verticalLayout_1 = QtGui.QVBoxLayout()
        self.verticalLayout_1.setObjectName(_fromUtf8("verticalLayout_1"))

    ### PLOT LAYOUT ###
        self.plotTabs = QtGui.QTabWidget(self.centralWidget)
        self.verticalLayout_1.addWidget(self.plotTabs)

        self.plotTab_1 = QtGui.QWidget()
        self.plotTab_1.setObjectName(_fromUtf8("plotTab_1"))
        self.plotLayout = QtGui.QVBoxLayout(self.plotTab_1)
        self.plotTabs.addTab(self.plotTab_1, "Wideband")

        self.plotTab_2 = QtGui.QWidget()
        self.plotTab_2.setObjectName(_fromUtf8("plotTab_2"))
        self.plotLayout_2 = QtGui.QVBoxLayout(self.plotTab_2)
        self.plotTabs.addTab(self.plotTab_2, "HF")

        # self.plotTab_3 = QtGui.QWidget()
        # self.plotTab_3.setObjectName(_fromUtf8("plotTab_3"))
        # self.plotLayout_3 = QtGui.QVBoxLayout(self.plotTab_3)
        # self.plotTabs.addTab(self.plotTab_3, "RTSA")
        #
        # self.plotTab_4 = QtGui.QWidget()
        # self.plotTab_4.setObjectName(_fromUtf8("plotTab_4"))
        # self.plotLayout_4 = QtGui.QVBoxLayout(self.plotTab_4)
        # self.plotTabs.addTab(self.plotTab_4, "IQ")

    ### FREQ SETTINGS LAYOUT ###
        self.freqBox = QtGui.QGroupBox(self.centralWidget)
        self.freqBox.setObjectName(_fromUtf8("freqBox"))
        self.freqVLayout_1 = QtGui.QVBoxLayout(self.freqBox)

        self.freqHLayout_1 = QtGui.QHBoxLayout()
        self.freqHLayout_1.setObjectName(_fromUtf8("freqHLayout_1"))
        self.freqVLayout_1.addLayout(self.freqHLayout_1)

        # Start frequency setting
        self.startLayout = QtGui.QFormLayout()
        self.startLayout.setObjectName(_fromUtf8("startLayout"))
        self.startLabel = QtGui.QLabel(self.freqBox)
        self.startLabel.setObjectName(_fromUtf8("startLabel"))
        self.startLayout.setWidget(0, QtGui.QFormLayout.LabelRole, self.startLabel)

        self.startEdit = pg.SpinBox(self.freqBox, suffix=' MHz', siPrefix=False)
        self.startEdit.setObjectName(_fromUtf8("startEdit"))
        self.startEdit.setDecimals(2)
        self.startEdit.setSingleStep(0.1)
        self.startEdit.setKeyboardTracking(False)
        self.startLayout.setWidget(0, QtGui.QFormLayout.FieldRole, self.startEdit)
        self.freqHLayout_1.addLayout(self.startLayout)

        # Stop frequency setting
        self.stopLayout = QtGui.QFormLayout()
        self.stopLayout.setObjectName(_fromUtf8("stopLayout"))
        self.stopLabel = QtGui.QLabel(self.freqBox)
        self.stopLabel.setObjectName(_fromUtf8("stopLabel"))
        self.stopLayout.setWidget(0, QtGui.QFormLayout.LabelRole, self.stopLabel)

        self.stopEdit = pg.SpinBox(self.freqBox, suffix=' MHz', siPrefix=False, decimals=2)
        self.stopEdit.setObjectName(_fromUtf8("stopEdit"))
        #self.stopEdit.setDecimals(2)
        self.stopEdit.setSingleStep(0.1)
        self.stopEdit.setKeyboardTracking(False)
        self.stopLayout.setWidget(0, QtGui.QFormLayout.FieldRole, self.stopEdit)
        self.freqHLayout_1.addLayout(self.stopLayout)

        # RBW setting
        self.rbwLayout = QtGui.QFormLayout()
        self.rbwLayout.setObjectName(_fromUtf8("rbwLayout"))
        self.rbwLabel = QtGui.QLabel(self.freqBox)
        self.rbwLabel.setObjectName(_fromUtf8("rbwLabel"))
        self.rbwLayout.setWidget(0, QtGui.QFormLayout.LabelRole, self.rbwLabel)

        self.rbwEdit = pg.ComboBox(self.freqBox)
        self.rbwEdit.setObjectName(_fromUtf8("rbwEdit"))
        self.rbwEdit.addItem('0,21 kHz', 16384)
        self.rbwEdit.addItem('0,42 kHz', 8192)
        self.rbwEdit.addItem('0,84 kHz', 4096)
        self.rbwEdit.addItem('1,69 kHz', 2048)
        self.rbwEdit.addItem('3,38 kHz', 1024)
        self.rbwEdit.addItem('6,75 kHz', 512)
        self.rbwEdit.addItem('13,5 kHz', 256)
        self.rbwEdit.addItem('27 kHz', 128)
        self.rbwEdit.addItem('54 kHz', 64)
        self.rbwEdit.addItem('108 kHz', 32)
        self.rbwEdit.addItem('216 kHz', 16)
        self.rbwEdit.addItem('432 kHz', 8)
        self.rbwEdit.setCurrentIndex(4)
        self.rbwLayout.setWidget(0, QtGui.QFormLayout.FieldRole, self.rbwEdit)
        self.freqHLayout_1.addLayout(self.rbwLayout)

        spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
        self.freqHLayout_1.addItem(spacerItem)

        self.freqHLayout_2 = QtGui.QHBoxLayout()
        self.freqHLayout_2.setObjectName(_fromUtf8("freqHLayout_2"))
        self.freqVLayout_1.addLayout(self.freqHLayout_2)

        # Center frequency setting
        self.centerLayout = QtGui.QFormLayout()
        self.centerLayout.setObjectName(_fromUtf8("centerLayout"))
        self.centerLabel = QtGui.QLabel(self.freqBox)
        self.centerLabel.setObjectName(_fromUtf8("centerLabel"))
        self.centerLayout.setWidget(0, QtGui.QFormLayout.LabelRole, self.centerLabel)

        self.centerEdit = pg.SpinBox(self.freqBox, suffix=' MHz', siPrefix=False)
        self.centerEdit.setObjectName(_fromUtf8("centerEdit"))
        self.centerEdit.setDecimals(2)
        self.centerEdit.setSingleStep(1)
        self.centerEdit.setKeyboardTracking(False)
        self.centerLayout.setWidget(0, QtGui.QFormLayout.FieldRole, self.centerEdit)
        self.freqHLayout_2.addLayout(self.centerLayout)

        # Span setting
        self.spanLayout = QtGui.QFormLayout()
        self.spanLayout.setObjectName(_fromUtf8("spanLayout"))
        self.spanLabel = QtGui.QLabel(self.freqBox)
        self.spanLabel.setObjectName(_fromUtf8("spanLabel"))
        self.spanLayout.setWidget(0, QtGui.QFormLayout.LabelRole, self.spanLabel)

        self.spanEdit = pg.SpinBox(self.freqBox, suffix=' MHz', siPrefix=False)
        self.spanEdit.setObjectName(_fromUtf8("spanEdit"))
        self.spanEdit.setDecimals(2)
        self.spanEdit.setRange(self.step/1e6, 1250)
        self.spanEdit.setSingleStep(0.1)
        self.spanEdit.setKeyboardTracking(False)
        self.spanLayout.setWidget(0, QtGui.QFormLayout.FieldRole, self.spanEdit)
        self.freqHLayout_2.addLayout(self.spanLayout)
        self.freqHLayout_2.addItem(spacerItem)

        self.verticalLayout_1.addWidget(self.freqBox)
        self.horizontalLayout_1.addLayout(self.verticalLayout_1)

### RIGHT SIDE LAYOUT ###
        self.settingsBox = QtGui.QGroupBox(self.centralWidget)
        self.settingsBox.setMaximumSize(QtCore.QSize(250, 16777215))
        self.settingsBox.setObjectName(_fromUtf8("settingsBox"))
        self.settingsVLayout_1 = QtGui.QVBoxLayout(self.settingsBox)
        self.settingsVLayout_1.setObjectName(_fromUtf8("settingsVLayout_1"))

        # Start button
        self.settingsHLayout_1 = QtGui.QHBoxLayout()
        self.startButton = QtGui.QPushButton()
        self.startButton.setText('START')
        self.settingsHLayout_1.addWidget(self.startButton)

        # Stop button
        self.stopButton = QtGui.QPushButton()
        self.stopButton.setText('STOP')
        self.stopButton.setEnabled(False)
        self.settingsHLayout_1.addWidget(self.stopButton)
        self.settingsVLayout_1.addLayout(self.settingsHLayout_1)

        # Gain slider
        self.gainLayout = QtGui.QFormLayout()
        self.gainLayout.setObjectName(_fromUtf8("gainLayout"))
        self.gainLabel = QtGui.QLabel(self.settingsBox)
        self.gainLabel.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
        self.gainLabel.setObjectName(_fromUtf8("gainLabel"))
        self.gainLayout.setWidget(0, QtGui.QFormLayout.LabelRole, self.gainLabel)
        self.gainSlider = QtGui.QSlider(self.settingsBox)
        self.gainSlider.setMaximum(49)
        self.gainSlider.setSingleStep(1)
        self.gainSlider.setProperty("value", 20)
        self.gainSlider.setOrientation(QtCore.Qt.Horizontal)
        self.gainSlider.setObjectName(_fromUtf8("gainSlider"))
        self.gainLayout.setWidget(0, QtGui.QFormLayout.FieldRole, self.gainSlider)
        self.settingsVLayout_1.addLayout(self.gainLayout)

        # Gain display
        self.gainDisp = QtGui.QLCDNumber(self.settingsBox)
        self.gainDisp.setSegmentStyle(QtGui.QLCDNumber.Flat)
        self.settingsVLayout_1.addWidget(self.gainDisp)

        # Reference level setting
        self.refLayout = QtGui.QFormLayout()
        self.refLayout.setObjectName(_fromUtf8("refLayout"))
        self.refLabel = QtGui.QLabel(self.settingsBox)
        self.refLabel.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
        self.refLabel.setObjectName(_fromUtf8("refLabel"))
        self.refLayout.setWidget(0, QtGui.QFormLayout.LabelRole, self.refLabel)
        self.refEdit = QtGui.QDoubleSpinBox(self.settingsBox)
        self.refEdit.setObjectName(_fromUtf8("refEdit"))
        self.refEdit.setValue(self.ref)
        self.refEdit.setDecimals(0)
        self.refEdit.setRange(-50, 50)
        self.refEdit.setKeyboardTracking(False)
        self.refLayout.setWidget(0, QtGui.QFormLayout.FieldRole, self.refEdit)
        self.settingsVLayout_1.addLayout(self.refLayout)

        spacerItem1 = QtGui.QSpacerItem(158, 304, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
        self.settingsVLayout_1.addItem(spacerItem1)

    ### Settings tabs ###
        self.settingsTabs = QtGui.QTabWidget(self.settingsBox)
        self.settingsVLayout_1.addWidget(self.settingsTabs)
        self.settingsTabs.setEnabled(False)

        # Misc. options
        self.tab_1 = QtGui.QWidget()
        self.settingsTabs.addTab(self.tab_1, "Misc.")

        self.miscLayout = QtGui.QVBoxLayout()
        self.saveButton = QtGui.QPushButton(self.settingsBox)
        self.saveButton.setText("Save plot")
        self.miscLayout.addWidget(self.saveButton)

        self.avgLayout_1 = QtGui.QFormLayout()
        self.avgLayout_1.setObjectName(_fromUtf8("avgLayout_1"))
        self.avgLabel_1 = QtGui.QLabel(self.settingsBox)
        self.avgLabel_1.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
        self.avgLabel_1.setObjectName(_fromUtf8("avgLabel"))
        self.avgLayout_1.setWidget(0, QtGui.QFormLayout.LabelRole, self.avgLabel_1)
        self.avgCheck = QtGui.QCheckBox(self.settingsBox)
        self.avgLayout_1.setWidget(0, QtGui.QFormLayout.FieldRole, self.avgCheck)
        self.miscLayout.addLayout(self.avgLayout_1)

        self.avgLayout_2 = QtGui.QFormLayout()
        self.avgLabel_2 = QtGui.QLabel(self.settingsBox)
        self.avgLabel_2.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
        self.avgLabel_2.setObjectName(_fromUtf8("avgLabel_2"))
        self.avgLayout_2.setWidget(0, QtGui.QFormLayout.LabelRole, self.avgLabel_2)
        self.avgEdit = QtGui.QDoubleSpinBox(self.settingsBox)
        self.avgEdit.setDecimals(0)
        self.avgEdit.setRange(1, 100)
        self.avgEdit.setKeyboardTracking(False)
        self.avgEdit.setValue(10)
        self.avgLayout_2.setWidget(0, QtGui.QFormLayout.FieldRole, self.avgEdit)
        self.miscLayout.addLayout(self.avgLayout_2)

        self.holdLayout = QtGui.QFormLayout()
        self.holdLayout.setObjectName(_fromUtf8("holdLayout"))
        self.holdLabel = QtGui.QLabel(self.settingsBox)
        self.holdLabel.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
        self.holdLabel.setObjectName(_fromUtf8("holdLabel"))
        self.holdLayout.setWidget(0, QtGui.QFormLayout.LabelRole, self.holdLabel)
        self.holdCheck = QtGui.QCheckBox(self.settingsBox)
        self.holdLayout.setWidget(0, QtGui.QFormLayout.FieldRole, self.holdCheck)
        self.miscLayout.addLayout(self.holdLayout)

        self.peakLayout = QtGui.QFormLayout()
        self.peakLayout.setObjectName(_fromUtf8("peakLayout"))
        self.peakLabel = QtGui.QLabel(self.settingsBox)
        self.peakLabel.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
        self.peakLabel.setObjectName(_fromUtf8("peakLabel"))
        self.peakLayout.setWidget(0, QtGui.QFormLayout.LabelRole, self.peakLabel)
        self.peakCheck = QtGui.QCheckBox(self.settingsBox)
        self.peakLayout.setWidget(0, QtGui.QFormLayout.FieldRole, self.peakCheck)
        self.miscLayout.addLayout(self.peakLayout)

        self.waterfallLayout = QtGui.QFormLayout()
        self.waterfallLayout.setObjectName(_fromUtf8("waterfallLayout"))
        self.waterfallLabel = QtGui.QLabel(self.settingsBox)
        self.waterfallLabel.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
        self.waterfallLabel.setObjectName(_fromUtf8("waterfallLabel"))
        self.waterfallLayout.setWidget(0, QtGui.QFormLayout.LabelRole, self.waterfallLabel)
        self.waterfallCheck = QtGui.QCheckBox(self.settingsBox)
        self.waterfallLayout.setWidget(0, QtGui.QFormLayout.FieldRole, self.waterfallCheck)
        self.miscLayout.addLayout(self.waterfallLayout)

        self.correctButton = QtGui.QPushButton(self.settingsBox)
        self.correctButton.setText("Correction")
        self.miscLayout.addWidget(self.correctButton)

        self.tab_1.setLayout(self.miscLayout)

        # Traces
        self.tab_2 = QtGui.QWidget()
        self.settingsTabs.addTab(self.tab_2, "Traces")

        self.traceLayout = QtGui.QVBoxLayout()
        self.traceButton_1 = QtGui.QPushButton(self.settingsBox)
        self.traceButton_1.setText("Save trace 1")
        self.traceLayout.addWidget(self.traceButton_1)

        self.traceButton_2 = QtGui.QPushButton(self.settingsBox)
        self.traceButton_2.setText("Save trace 2")
        self.traceLayout.addWidget(self.traceButton_2)

        self.traceButton_3 = QtGui.QPushButton(self.settingsBox)
        self.traceButton_3.setText("Save trace 3")
        self.traceLayout.addWidget(self.traceButton_3)

        self.traces = [self.traceButton_1, self.traceButton_2, self.traceButton_3]

        self.tab_2.setLayout(self.traceLayout)

        # Markers
        self.tab_3 = QtGui.QWidget()
        self.settingsTabs.addTab(self.tab_3, "Markers")

        self.markerLayout = QtGui.QGridLayout()
        self.markerLabel_1 = QtGui.QLabel(self.settingsBox)
        self.markerLabel_1.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
        self.markerLayout.addWidget(self.markerLabel_1, 0,0)
        self.markerCheck_1 = QtGui.QCheckBox(self.settingsBox)
        self.markerLayout.addWidget(self.markerCheck_1, 0,1)
        self.markerEdit_1 = QtGui.QDoubleSpinBox(self.settingsBox)
        self.markerEdit_1.setDecimals(2)
        self.markerEdit_1.setKeyboardTracking(False)
        self.markerEdit_1.setDisabled(True)
        self.markerEdit_1.setSingleStep(0.1)
        self.markerLayout.addWidget(self.markerEdit_1, 0,2)

        self.markerLabel_2 = QtGui.QLabel(self.settingsBox)
        self.markerLabel_2.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
        self.markerLayout.addWidget(self.markerLabel_2, 2,0)
        self.markerCheck_2 = QtGui.QCheckBox(self.settingsBox)
        self.markerLayout.addWidget(self.markerCheck_2, 2,1)
        self.markerEdit_2 = QtGui.QDoubleSpinBox(self.settingsBox)
        self.markerEdit_2.setDecimals(2)
        self.markerEdit_2.setKeyboardTracking(False)
        self.markerEdit_2.setDisabled(True)
        self.markerEdit_2.setSingleStep(0.1)
        self.markerLayout.addWidget(self.markerEdit_2, 2,2)

        self.markerLabel_3 = QtGui.QLabel(self.settingsBox)
        self.markerLabel_3.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
        self.markerLayout.addWidget(self.markerLabel_3, 3,0)
        self.markerCheck_3 = QtGui.QCheckBox(self.settingsBox)
        self.markerLayout.addWidget(self.markerCheck_3, 3,1)
        self.markerEdit_3 = QtGui.QDoubleSpinBox(self.settingsBox)
        self.markerEdit_3.setDecimals(2)
        self.markerEdit_3.setKeyboardTracking(False)
        self.markerEdit_3.setDisabled(True)
        self.markerEdit_3.setSingleStep(0.1)
        self.markerLayout.addWidget(self.markerEdit_3, 3,2)

        self.markerLabel_4 = QtGui.QLabel(self.settingsBox)
        self.markerLabel_4.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
        self.markerLayout.addWidget(self.markerLabel_4, 4,0)
        self.markerCheck_4 = QtGui.QCheckBox(self.settingsBox)
        self.markerLayout.addWidget(self.markerCheck_4, 4,1)
        self.markerEdit_4 = QtGui.QDoubleSpinBox(self.settingsBox)
        self.markerEdit_4.setDecimals(2)
        self.markerEdit_4.setKeyboardTracking(False)
        self.markerEdit_4.setDisabled(True)
        self.markerEdit_4.setSingleStep(0.1)
        self.markerLayout.addWidget(self.markerEdit_4, 4,2)

        self.deltaLabel = QtGui.QLabel(self.settingsBox)
        self.deltaLabel.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
        self.markerLayout.addWidget(self.deltaLabel, 1,0)
        self.deltaCheck = QtGui.QCheckBox(self.settingsBox)
        self.markerLayout.addWidget(self.deltaCheck, 1,1)
        self.deltaEdit = QtGui.QDoubleSpinBox(self.settingsBox)
        self.deltaEdit.setDecimals(2)
        self.deltaEdit.setSingleStep(0.1)
        self.deltaEdit.setKeyboardTracking(False)
        self.deltaEdit.setDisabled(True)
        self.markerLayout.addWidget(self.deltaEdit, 1,2)
        self.deltaCheck.setDisabled(True)

        self.tab_3.setLayout(self.markerLayout)

        self.horizontalLayout_1.addWidget(self.settingsBox)

### MISC Qt FUNCTIONS ###
        MainWindow.setCentralWidget(self.centralWidget)
        self.menubar = QtGui.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 847, 21))
        self.menubar.setObjectName(_fromUtf8("menubar"))
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtGui.QStatusBar(MainWindow)
        self.statusbar.setObjectName(_fromUtf8("statusbar"))
        MainWindow.setStatusBar(self.statusbar)
        #self.statusbar.addWidget(self.peakStatus)
        self.statusbar.setVisible(False)

        self.retlanslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)
Beispiel #18
0
    def init_ui(self):
        layout = QtWidgets.QFormLayout()
        getter_methods = dict()
        setter_methods = dict()
        for parameter_name, parameter_opts in self.parameters.items():
            typ = parameter_opts.get('type', str)
            default = parameter_opts.get('default')
            if typ == str:
                w = QtWidgets.QLineEdit(default)
                activation_method = w.text
                getter_method = w.text
                setter_method = w.setText
            elif typ == int or typ == float:
                default_opts = {
                    # 'suffix': parameter_opts.get('units', ''),
                    # 'siPrefix': False,
                    'dec': True,
                    'int': typ == int,
                    'minStep': 1 if typ == int else 0.1,
                    'step': 1 if typ == int else 0.1,
                    'bounds': [None, None],
                    'decimals': 8,
                }
                opts = dict()
                if parameter_opts.get('nonnegative', False):
                    opts['bounds'] = [0, None]
                if typ == int and parameter_opts.get('positive', False):
                    opts['bounds'] = [1, None]
                for k in default_opts.keys():
                    opts[k] = parameter_opts.get(k, default_opts[k])

                w = SpinBox(unit=parameter_opts.get('units'), **opts)
                # w = pg.SpinBox(**opts)
                w.setValue(default)
                # getter_method = w.value
                getter_method = w.unit_value
                setter_method = w.setValue
            elif typ == bool:
                w = QtWidgets.QCheckBox()
                getter_method = w.isChecked
                setter_method = w.setChecked
                default = default if default is not None else False
                w.setChecked(default)
            elif typ == object:
                w = parameter_opts['widget']
                getter_method = parameter_opts['getter']
                setter_method = parameter_opts.get('setter', None)
            elif typ == range:
                w = Rangespace(units=parameter_opts.get('units'))
                getter_method = w.get
                setter_method = w.set
                if not default is None:
                    w.set(default)
            elif typ == list:
                w = pg.ComboBox()
                items = parameter_opts.get('items')
                if type(items) == list:
                    w.setItems(items)
                else:
                    raise ValueError(
                        'items must be specified and of type list to add a list type entry to ParamWidget'
                    )
                getter_method = w.value
                setter_method = w.setText
                if not default is None:
                    try:
                        w.setText(default)
                    except ValueError:
                        pass
            elif typ == dict:
                w = pg.ComboBox()
                items = parameter_opts.get('items')
                if type(items) == dict:
                    w.setItems(items)
                else:
                    raise ValueError(
                        'items must be specified and of type dict to add a dict type entry to ParamWidget'
                    )
                getter_method = w.value
                setter_method = w.setValue
                if not default is None:
                    w.setValue(default)

            layout.addRow(parameter_name, w)
            getter_methods[parameter_name] = getter_method
            setter_methods[parameter_name] = setter_method
        self.getter_methods = getter_methods
        self.setter_methods = setter_methods
        self.setLayout(layout)
        return
Beispiel #19
0
    app = QtGui.QApplication([])
    pw = pg.PlotWidget()

    pw.showGrid(x=True, y=True)
    #pw.setAutoPan(x=True)
    #pw.setDownsampling(ds=80)

    w = QtGui.QWidget()

    pause_button = QtGui.QPushButton("Pause")
    export_button = QtGui.QPushButton("Export")

    x_label = QtGui.QLabel("X-axis:")
    x_label.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter)
    x_dropdown = pg.ComboBox(items=possible_data_types)
    x_dropdown.setValue("TimeElapsed")
    y_label = QtGui.QLabel("Y-axis:")
    y_label.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter)
    y_dropdown = pg.ComboBox(items=possible_data_types)
    y_dropdown.setValue("Index")

    transform_label = QtGui.QLabel("Transform")
    transform_label.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter)
    #transform_dropdown = pg.ComboBox(items=possible_transform_types)
    transform_dropdown = QtGui.QComboBox()
    transform_dropdown.addItems(possible_transform_types)
    #transform_dropdown.setValue("None")
    #transform_dropdown.setFlags(QtCore.Qt.ItemIsUserCheckable | Qt.Core.Qt.ItemIsEnabled)
    #transform_dropdown.setCheckState(QtCore.Qt.Unchecked)
Beispiel #20
0
button_seg_layout.setLayout(QtGui.QVBoxLayout())

button_outside = QtGui.QRadioButton("Outside")
button_boundary = QtGui.QRadioButton("Boundary")
button_inside = QtGui.QRadioButton("Inside")
button_seg_can = QtGui.QRadioButton("Segmentation candidate")

button_inside.setChecked(True)

# Upper divider
divider_up = QtGui.QFrame()
divider_up.setFrameShape(QtGui.QFrame.HLine)
divider_up.setStyleSheet("background-color: #c0c0c0;")

# Slice selector
combo_slice = pg.ComboBox(button_seg_layout, ["des", "pa", "cito"])

# Lower divider
divider_down = QtGui.QFrame()
divider_down.setFrameShape(QtGui.QFrame.HLine)
divider_down.setStyleSheet("background-color: #c0c0c0;")

# Label
info_label = QtGui.QLabel(sidebar_label.format("", "", ""))

# Side bar - patch group selection
button_seg_layout.layout().addWidget(button_outside)
button_seg_layout.layout().addWidget(button_boundary)
button_seg_layout.layout().addWidget(button_inside)
button_seg_layout.layout().addWidget(button_seg_can)