def init_sublayouts(self): # Panel sublayout self.panel_sublayout = QtWidgets.QHBoxLayout() panel_sublayout_inner = QtWidgets.QVBoxLayout() # Server sublayout server_sublayout_grid = QtWidgets.QGridLayout() server_sublayout_grid.addWidget(self.labels["server"], 0, 0) server_sublayout_grid.addWidget(self.labels["interface"], 0, 1) server_sublayout_grid.addWidget(self.ports, 1, 0) server_sublayout_grid.addWidget(self.textboxes["host"], 1, 0) server_sublayout_grid.addWidget(self.interface, 1, 1) server_sublayout_grid.addWidget(self.mode, 2, 0) server_sublayout_grid.addWidget(self.buttons["connect"], 2, 1) # Controls sublayout control_sublayout_grid = QtWidgets.QGridLayout() control_sublayout_grid.addWidget(self.labels["scan"], 0, 0) control_sublayout_grid.addWidget(self.buttons["start"], 1, 0) control_sublayout_grid.addWidget(self.buttons["stop"], 1, 1) control_sublayout_grid.addWidget(self.buttons["save_scan"], 2, 0) control_sublayout_grid.addWidget(self.buttons["load_scan"], 2, 1) control_sublayout_grid.addWidget(self.labels["clutter"], 3, 0) control_sublayout_grid.addWidget(self.buttons["create_cl"], 4, 0) control_sublayout_grid.addWidget(self.buttons["load_cl"], 4, 1) control_sublayout_grid.addWidget(self.labels["clutter_file"], 5, 0, 1, 2) # Settings sublayout settings_sublayout_grid = QtWidgets.QGridLayout() settings_sublayout_grid.addWidget(self.labels["sensor"], 0, 0) settings_sublayout_grid.addWidget(self.textboxes["sensor"], 0, 1) settings_sublayout_grid.addWidget(self.labels["start_range"], 1, 0) settings_sublayout_grid.addWidget(self.labels["end_range"], 1, 1) settings_sublayout_grid.addWidget(self.textboxes["start_range"], 2, 0) settings_sublayout_grid.addWidget(self.textboxes["end_range"], 2, 1) settings_sublayout_grid.addWidget(self.labels["frequency"], 3, 0) settings_sublayout_grid.addWidget(self.textboxes["frequency"], 3, 1) settings_sublayout_grid.addWidget(self.labels["gain"], 4, 0) settings_sublayout_grid.addWidget(self.textboxes["gain"], 4, 1) settings_sublayout_grid.addWidget(self.labels["sweeps"], 5, 0) settings_sublayout_grid.addWidget(self.textboxes["sweeps"], 5, 1) settings_sublayout_grid.addWidget(self.labels["sweep_buffer"], 6, 0) settings_sublayout_grid.addWidget(self.textboxes["sweep_buffer"], 6, 1) settings_sublayout_grid.addWidget(self.labels["power_bins"], 7, 0) settings_sublayout_grid.addWidget(self.textboxes["power_bins"], 7, 1) panel_sublayout_inner.addStretch(10) panel_sublayout_inner.addLayout(server_sublayout_grid) panel_sublayout_inner.addStretch(2) panel_sublayout_inner.addLayout(control_sublayout_grid) panel_sublayout_inner.addStretch(4) panel_sublayout_inner.addLayout(settings_sublayout_grid) panel_sublayout_inner.addStretch(20) self.panel_sublayout.addStretch(5) self.panel_sublayout.addLayout(panel_sublayout_inner) self.panel_sublayout.addStretch(10)
def initUI(self): self.main = QtWidgets.QWidget() self._tabs = QtWidgets.QTabWidget() self._main = QtWidgets.QWidget() self._manu = QtWidgets.QWidget() self.setCentralWidget(self.main) self.gridlayout = QtWidgets.QGridLayout() self._tabs.addTab(self._main, "Main") self._tabs.addTab(self._manu, "Manual") self.initMaintab() self.initManualtab() self.gridlayout.addWidget(self._tabs, 0, 0, 10, 1) self.main.setLayout(self.gridlayout) self._tabs.gridlayout = QtWidgets.QGridLayout() self._tabs.setLayout(self._tabs.gridlayout) self.gridlayout.setSpacing(10) self.setWindowTitle(self.title) left = 100 top = 100 width = 1000 height = 800 self.setGeometry(left, top, width, height) self.statusBar().showMessage('Loading') # mainMenu = self.menuBar() fileMenu = mainMenu.addMenu('File') # openButton = QtWidgets.QAction(QIcon('open24.png'), 'Open', self) openButton.setShortcut('Ctrl+O') openButton.setStatusTip('Open directory') openButton.triggered.connect(self.getfolder) fileMenu.addAction(openButton) # exitButton = QtWidgets.QAction(QIcon('exit24.png'), 'Exit', self) exitButton.setShortcut('Ctrl+Q') exitButton.setStatusTip('Exit application') exitButton.triggered.connect(self.close) fileMenu.addAction(exitButton) # self.show()
def __init__(self, wib_server='127.0.0.1', cli=False): super().__init__() self.cli = cli self.wib = WIB(wib_server) self.setAutoFillBackground(True) p = self.palette() p.setColor(self.backgroundRole(), QtGui.QColor(*colors[0])) self.setPalette(p) self._main = QtWidgets.QWidget() self.setCentralWidget(self._main) layout = QtWidgets.QVBoxLayout(self._main) self.wib_pane = WIBPane(self) self.femb_panes = [FEMBPane(self, idx) for idx in range(4)] layout.addWidget(self.wib_pane) fembs = QtWidgets.QWidget(self._main) fembs_layout = QtWidgets.QGridLayout(fembs) for idx, f in enumerate(self.femb_panes): fembs_layout.addWidget(f, idx // 2, idx % 2) layout.addWidget(fembs) if self.cli: self.get_sensors() else: QtCore.QTimer.singleShot(500, self.get_sensors)
def get_chanselect_layout(self): self.chanselect = QtWidgets.QGroupBox('Channel Select Controls') # create the channel slider self.channelslider = QtWidgets.QScrollBar(QtCore.Qt.Horizontal, self) self.channelslider.setRange(0, self.nchannels - 1) self.channelslider.valueChanged.connect(self.channelslider_changed) # define the channel text box self.channeltext_label = QtWidgets.QLabel(self) self.channeltext_label.setText('Channel: ') self.channeltext = QtWidgets.QLineEdit(str(self.channel), self) self.channeltext.setToolTip('The channel number you want to display') self.channeltext.returnPressed.connect(self.channeltext_changed) # RMS value self.rms = QtWidgets.QLabel(self) self.rms.setText('RMS value: {:10.7f}'.format(self.rmsval)) # layout layout = QtWidgets.QGridLayout() layout.addWidget(self.channeltext_label, 0, 0) layout.addWidget(self.channeltext, 0, 1) layout.addWidget(self.channelslider, 1, 0, 1, 2) layout.addWidget(self.rms, 2, 0, 1, 2) self.chanselect.setLayout(layout)
def __init__(self): super().__init__() self.setWindowTitle('Linear Monotone Preference Model') self.width = 100 self.height = 100 self.menu() self._main = QtWidgets.QWidget() self.setCentralWidget(self._main) self.layout = QtWidgets.QGridLayout(self._main) #simpleShowFrame_old:ModelOneUserFrame #self.simpleShowFrame_old = SimpleShowFrame_old(self.layout) #simpleShowFrame:ModelOneUserFrame self.simpleShowFrame = SimpleShowFrame(self.layout) #modelTwoUsersFrame:ModelTwoUsersFrame self.modelTwoUsersFrame = ModelTwoUsersFrame(self.layout) #thresholdFrame:ThresholdFrame self.thresholdFrame = ThresholdFrame(self.layout) #ndFrame:OneUserFrame self.ndFrame = NdFrame(self.layout) self.currentFrame = self.simpleShowFrame self.currentFrame.show(self.width, self.height)
def __init__(self): super().__init__() self.init_labels() self.init_textboxes() self.init_buttons() self.init_dropdowns() self.init_sublayouts() self.start_up() self.main_widget = QWidget() self.main_layout = QtWidgets.QGridLayout(self.main_widget) self.main_layout.sizeConstraint = QtWidgets.QLayout.SetDefaultConstraint self.main_layout.addLayout(self.panel_sublayout, 0, 1) self.main_layout.setColumnStretch(0, 1) self.canvas = self.init_graphs() self.main_layout.addWidget(self.canvas, 0, 0) self.main_widget.setLayout(self.main_layout) self.setCentralWidget(self.main_widget) self.setGeometry(50, 50, 1200, 700) self.setWindowTitle("Acconeer Exploration GUI") self.show() self.radar = data_processing.DataProcessing()
def get_plotselection_layout(self): self.plotselection = QtWidgets.QGroupBox('Plot Selection') # raster image and contour button group self.bgdata_label = QtWidgets.QLabel('Raster:', self) self.bgcont_label = QtWidgets.QLabel('Contour:', self) self.bgdata = QtWidgets.QButtonGroup(self) self.bgcont = QtWidgets.QButtonGroup(self) self.databutton = [] self.contbutton = [] for button in ['Channels', 'Moment-0', 'Moment-1', 'Moment-2', 'None']: self.databutton.append(QtWidgets.QRadioButton(button)) self.contbutton.append(QtWidgets.QRadioButton(button)) self.bgdata.addButton(self.databutton[-1]) self.bgcont.addButton(self.contbutton[-1]) self.databutton[0].setChecked(True) self.contbutton[-1].setChecked(True) self.bgdata.buttonClicked.connect(self.initiate_dataplot) self.bgcont.buttonClicked.connect(self.initiate_contplot) # create layout layout = QtWidgets.QGridLayout() layout.addWidget(self.bgdata_label, 0, 0) layout.addWidget(self.bgcont_label, 0, 1) for idx, button in enumerate(self.databutton): layout.addWidget(button, idx + 1, 0) for idx, button in enumerate(self.contbutton): layout.addWidget(button, idx + 1, 1) self.plotselection.setLayout(layout)
def get_dataselection_layout(self): self.dataselection = QtWidgets.QGroupBox('Data selection') # range self.r = [] for idx, label in enumerate(['X: ', 'Y: ', 'Channel: ']): self.r.append(QtWidgets.QLabel(label, self)) self.r.append( QtWidgets.QLineEdit('{:4d}'.format(self.range[idx][0]), self)) self.r.append(QtWidgets.QLabel(' to ', self)) self.r.append( QtWidgets.QLineEdit('{:4d}'.format(self.range[idx][1]), self)) # go button self.slicebutton = QtWidgets.QPushButton('Slice', self) self.slicebutton.clicked.connect(self.update_dataselection) # create layout layout = QtWidgets.QGridLayout() for idx in np.arange(3): layout.addWidget(self.r[4 * idx], idx, 0) layout.addWidget(self.r[4 * idx + 1], idx, 1) layout.addWidget(self.r[4 * idx + 2], idx, 2) layout.addWidget(self.r[4 * idx + 3], idx, 3) layout.addWidget(self.slicebutton, 3, 0, 1, 4) self.dataselection.setLayout(layout)
def get_canvas2_layout(self): self.canvas2 = QtWidgets.QGroupBox('Canvas 2') # canvas 2 self.fig2 = FigureCanvas(Figure(figsize=(0.5, 1.5))) self._ax2 = self.fig2.figure.subplots() self.fig2.figure.subplots_adjust(0.15, 0.19, 0.95, 0.95) # range of canvas 2 self.r2 = [] for idx, label in enumerate(['X range: ', 'Y range: ']): self.r2.append(QtWidgets.QLabel(label, self)) self.r2.append( QtWidgets.QLineEdit('{:4.3f}'.format(self.range2[idx][0]), self)) self.r2.append(QtWidgets.QLabel(' to ', self)) self.r2.append( QtWidgets.QLineEdit('{:4.3f}'.format(self.range2[idx][1]), self)) for idx in np.arange(1, 9, 2): self.r2[idx].returnPressed.connect(self.update_range2) # go button self.updaterange2button = QtWidgets.QPushButton('Update Range', self) self.updaterange2button.clicked.connect(self.update_range2) # the layout layout = QtWidgets.QGridLayout() layout.addWidget(self.fig2, 0, 0, 1, 9) for idx in np.arange(8): layout.addWidget(self.r2[idx], 1, idx) layout.addWidget(self.updaterange2button, 1, 8) self.canvas2.setLayout(layout)
def get_controls_layout(self): self.controls = QtWidgets.QGroupBox('Image controls') # min and max values self.min_label = QtWidgets.QLabel(self) self.min_label.setText('Min: ') self.min = QtWidgets.QLineEdit('{:10.7f}'.format(self.vmin), self) self.min.setToolTip('The minimum value to display') self.min.returnPressed.connect(self.update_min) self.max_label = QtWidgets.QLabel(self) self.max_label.setText('Max: ') self.max = QtWidgets.QLineEdit('{:10.7f}'.format(self.vmax), self) self.max.setToolTip('The maxmimum value to display.') self.max.returnPressed.connect(self.update_max) # Contour value for scaling self.contval_label = QtWidgets.QLabel(self) self.contval_label.setText('Contour value: ') self.contval = QtWidgets.QLineEdit('{:10.7f}'.format(self.cval), self) self.contval.setToolTip('Value used to calculate the contour levels.') self.contval.returnPressed.connect(self.update_contourvalue) # Contour levels self.levels_label = QtWidgets.QLabel(self) self.levels_label.setText('Contour levels: ') self.levels = QtWidgets.QLineEdit(__arrtostr__(self.contours), self) self.levels.setToolTip('Contours levels to display ' + '(in terms of RMS). Should be a list of ' + 'floats separated by commas.') self.levels.returnPressed.connect(self.update_contourlevels) # color map self.colormap_label = QtWidgets.QLabel(self) self.colormap_label.setText('Colormap: ') self.colormap = QtWidgets.QLineEdit('{}'.format(self.cmap), self) self.colormap.setToolTip('The color map to use for the display') self.colormap.returnPressed.connect(self.update_colormap) # Contour colors self.levelcolor_label = QtWidgets.QLabel(self) self.levelcolor_label.setText('Contour Color: ') self.levelcolor = QtWidgets.QLineEdit('{}'.format(self.ccolor), self) self.levelcolor.setToolTip('The color of the contours') self.levelcolor.returnPressed.connect(self.update_contourcolor) # create layout layout = QtWidgets.QGridLayout() layout.addWidget(self.min_label, 0, 0) layout.addWidget(self.min, 0, 1) layout.addWidget(self.max_label, 1, 0) layout.addWidget(self.max, 1, 1) layout.addWidget(self.contval_label, 0, 2) layout.addWidget(self.contval, 0, 3) layout.addWidget(self.levels_label, 1, 2) layout.addWidget(self.levels, 1, 3) layout.addWidget(self.colormap_label, 0, 4) layout.addWidget(self.colormap, 0, 5) layout.addWidget(self.levelcolor_label, 1, 4) layout.addWidget(self.levelcolor, 1, 5) self.controls.setLayout(layout)
def get_Galtemplate_layout(self): self.Galtemplate = QtWidgets.QGroupBox('Galaxy Template') self.Galplot = QtWidgets.QCheckBox('Plot template', self) self.Galz_label = QtWidgets.QLabel('z = ', self) self.Galz = QtWidgets.QLineEdit('{:5.4f}'.format(self.z[1]), self) self.Galcolor_label = QtWidgets.QLabel('Color: ', self) self.Galcolor = QtWidgets.QLineEdit(self.linecolor[1], self) self.Galscale_label = QtWidgets.QLabel('Scale factor: ', self) self.Galscale = QtWidgets.QLineEdit('{:5.2f}'.format( self.linescale[1], self)) self.Gallabels = QtWidgets.QCheckBox('Plot labels', self) self.Galplot.stateChanged.connect(self.update_figures) self.Galz.returnPressed.connect(self.update_redshifts) self.Galcolor.returnPressed.connect(self.update_linecolors) self.Galscale.returnPressed.connect(self.update_linescales) self.Gallabels.stateChanged.connect(self.update_figures) # the layout layout = QtWidgets.QGridLayout() layout.addWidget(self.Galplot, 0, 0, 1, 2) layout.addWidget(self.Gallabels, 0, 2, 1, 2) layout.addWidget(self.Galz_label, 1, 0, 1, 1) layout.addWidget(self.Galz, 1, 1, 1, 1) layout.addWidget(self.Galscale_label, 1, 2, 1, 1) layout.addWidget(self.Galscale, 1, 3, 1, 1) layout.addWidget(self.Galcolor_label, 2, 0, 1, 1) layout.addWidget(self.Galcolor, 2, 1, 1, 1) self.Galtemplate.setLayout(layout)
def __init__(self, parent=None): super(Page3, self).__init__(parent) integerValidator = QtGui.QIntValidator(0, 10, self) coordLabel = QtWidgets.QLabel('Coordinate File:') self.coordLine = QtWidgets.QLineEdit() coordBtn = QtWidgets.QPushButton('File', self) coordBtn.clicked.connect(self.getCoordfile) self.registerField('coordFile*', self.coordLine) popLabel = QtWidgets.QLabel('Population File:') self.popLine = QtWidgets.QLineEdit() popBtn = QtWidgets.QPushButton('File', self) popBtn.clicked.connect(self.getPopfile) self.registerField('popFile*', self.popLine) grid = QtWidgets.QGridLayout() grid.setSpacing(10) grid.addWidget(coordLabel, 1, 0) grid.addWidget(self.coordLine, 1, 1) grid.addWidget(coordBtn, 1, 2) grid.addWidget(popLabel, 2, 0) grid.addWidget(self.popLine, 2, 1) grid.addWidget(popBtn, 2, 2) self.setLayout(grid)
def __init__(self, parent=None, line=None): super(CurvePropertiesDialog, self).__init__(parent) self.line = line #labels self._label_color = QtWidgets.QLabel('Color') self._label_symbol = QtWidgets.QLabel('Symbol') #text inputs self._edit_color = QtWidgets.QLineEdit() self._edit_symbol = QtWidgets.QLineEdit() #buttons self._btn_ok = QtWidgets.QPushButton('OK') self._btn_cancel = QtWidgets.QPushButton('Cancel') #layout grid = QtWidgets.QGridLayout() self.setLayout(grid) grid.addWidget(self._label_color, 0, 0) grid.addWidget(self._edit_color, 0, 1) grid.addWidget(self._label_symbol, 1, 0) grid.addWidget(self._edit_symbol, 1, 1) grid.addWidget(self._btn_ok, 2, 0) grid.addWidget(self._btn_cancel, 2, 1) #connections self._btn_ok.clicked.connect(self.process_inputs) self._btn_cancel.clicked.connect(self.close) self.update_from_line(self.line)
def get_canvas_layout(self): self.canvas = QtWidgets.QGroupBox('Canvas') # the canvas self.fig = FigureCanvas(Figure(figsize=(5, 5))) self._ax = self.fig.figure.subplots() # the layout layout = QtWidgets.QGridLayout() layout.addWidget(self.fig, 0, 0) self.canvas.setLayout(layout)
def __init__(self, parent=None): super(Page1, self).__init__(parent) integerValidator = QtGui.QIntValidator(0, 100, self) coordLabel = QtWidgets.QLabel('Coordinate File:') self.coordLine = QtWidgets.QLineEdit() coordBtn = QtWidgets.QPushButton('File', self) coordBtn.clicked.connect(self.getCoordfile) self.registerField('coordFile*', self.coordLine) popLabel = QtWidgets.QLabel('Population File:') self.popLine = QtWidgets.QLineEdit() popBtn = QtWidgets.QPushButton('File', self) popBtn.clicked.connect(self.getPopfile) self.registerField('popFile*', self.popLine) dataLabel = QtWidgets.QLabel('Data Directory:') self.dataLine = QtWidgets.QLineEdit() dataBtn = QtWidgets.QPushButton('File', self) dataBtn.clicked.connect(self.getDir) self.registerField('dataDir*', self.dataLine) allelesLabel = QtWidgets.QLabel('Number of alleles:') self.allelesLine = QtWidgets.QLineEdit() self.allelesLine.setValidator(integerValidator) self.registerField('alleleCount*', self.allelesLine) groupsLabel = QtWidgets.QLabel('Number of Groups:') self.groupsLine = QtWidgets.QLineEdit() self.groupsLine.setValidator(integerValidator) self.registerField('groupCount*', self.groupsLine) grid = QtWidgets.QGridLayout() grid.setSpacing(10) grid.addWidget(coordLabel, 1, 0) grid.addWidget(self.coordLine, 1, 1) grid.addWidget(coordBtn, 1, 2) grid.addWidget(popLabel, 2, 0) grid.addWidget(self.popLine, 2, 1) grid.addWidget(popBtn, 2, 2) grid.addWidget(dataLabel, 3, 0) grid.addWidget(self.dataLine, 3, 1) grid.addWidget(dataBtn, 3, 2) grid.addWidget(allelesLabel, 4, 0) grid.addWidget(self.allelesLine, 4, 1) grid.addWidget(groupsLabel, 5, 0) grid.addWidget(self.groupsLine, 5, 1) self.setLayout(grid)
def __init__(self, wib_server='127.0.0.1', config='femb0.json', grid=False): super().__init__() self.wib = WIB(wib_server) self.config = config self._main = QtWidgets.QWidget() self._main.setFocusPolicy(QtCore.Qt.StrongFocus) self.setCentralWidget(self._main) layout = QtWidgets.QVBoxLayout(self._main) self.grid = QtWidgets.QGridLayout() if grid: self.views = [Hist2DView(), FFTView(), MeanView(), RMSView()] for i, v in enumerate(self.views): self.grid.addWidget(v, i % 2, i // 2) else: self.views = [Hist2DView(), MeanRMSView(), FFTView()] for i, v in enumerate(self.views): self.grid.addWidget(v, 0, i) layout.addLayout(self.grid) nav_layout = QtWidgets.QHBoxLayout() button = QtWidgets.QPushButton('Configure') nav_layout.addWidget(button) button.setToolTip('Configure WIB and front end') button.clicked.connect(self.configure_wib) button = QtWidgets.QPushButton('Acquire') nav_layout.addWidget(button) button.setToolTip('Read WIB Spy Buffer') button.clicked.connect(self.acquire_data) button = QtWidgets.QPushButton('Continuous') nav_layout.addWidget(button) button.setToolTip('Repeat acquisitions until stopped') button.clicked.connect(self.toggle_continuous) self.continuious_button = button self.timer = QtCore.QTimer(self) self.timer.timeout.connect(self.acquire_data) layout.addLayout(nav_layout) self.plot()
def get_print_layout(self): self.print = QtWidgets.QGroupBox('Save figure') self.savefile_label = QtWidgets.QLabel('File:', self) self.savefile = QtWidgets.QLineEdit('./JWSTfilter.pdf', self) self.savec1 = QtWidgets.QCheckBox('Canvas 1', self) self.savec2 = QtWidgets.QCheckBox('Canvas 2', self) self.save = QtWidgets.QPushButton('Save', self) self.save.clicked.connect(self.save_figures) layout = QtWidgets.QGridLayout() layout.addWidget(self.savefile_label, 0, 0) layout.addWidget(self.savefile, 0, 1, 1, 2) layout.addWidget(self.savec1, 1, 0, 1, 1) layout.addWidget(self.savec2, 1, 1, 1, 1) layout.addWidget(self.save, 1, 2, 1, 1) self.print.setLayout(layout)
def get_canvas2_layout(self): self.canvas2 = QtWidgets.QGroupBox('Canvas 2') # the image selection buttons self.im2_bg_label = QtWidgets.QLabel(self) self.im2_bg_label.setText('Image: ') self.im2_buttons = [ QtWidgets.QRadioButton('Data'), QtWidgets.QRadioButton('Model'), QtWidgets.QRadioButton('Residual'), QtWidgets.QRadioButton('None') ] self.im2_buttons[1].setChecked(True) self.im2_bg = QtWidgets.QButtonGroup(self) for button in self.im2_buttons: self.im2_bg.addButton(button) self.im2_bg.buttonClicked.connect(self.update_figures) # the contour selection buttons self.co2_bg_label = QtWidgets.QLabel(self) self.co2_bg_label.setText('Contours: ') self.co2_buttons = [ QtWidgets.QRadioButton('Data'), QtWidgets.QRadioButton('Model'), QtWidgets.QRadioButton('Residual'), QtWidgets.QRadioButton('None') ] self.co2_buttons[3].setChecked(True) self.co2_bg = QtWidgets.QButtonGroup(self) for button in self.co2_buttons: self.co2_bg.addButton(button) self.co2_bg.buttonClicked.connect(self.update_figures) # the canvas self.fig2 = FigureCanvas(Figure(figsize=(5, 5))) self._ax2 = self.fig2.figure.subplots() # the layout layout = QtWidgets.QGridLayout() layout.addWidget(self.fig2, 0, 0, 6, 6) layout.addWidget(self.im2_bg_label, 6, 0) for idx, button in enumerate(self.im2_buttons): layout.addWidget(button, 6, idx + 1) layout.addWidget(self.co2_bg_label, 7, 0) for idx, button in enumerate(self.co2_buttons): layout.addWidget(button, 7, idx + 1) self.canvas2.setLayout(layout)
def __init__(self, parent=None): super(StartP, self).__init__(parent) integerValidator = QtGui.QIntValidator(0, 300, self) dataLabel = QtWidgets.QLabel('Data Directory:') self.dataLine = QtWidgets.QLineEdit() dataBtn = QtWidgets.QPushButton('File', self) dataBtn.clicked.connect(self.getDir) self.registerField('dataDir*', self.dataLine) allelesLabel = QtWidgets.QLabel('Number of alleles:') self.allelesLine = QtWidgets.QLineEdit() self.allelesLine.setValidator(integerValidator) self.registerField('alleleCount*', self.allelesLine) groupsLabel = QtWidgets.QLabel('Number of Groups:') self.groupsLine = QtWidgets.QLineEdit() self.groupsLine.setValidator(integerValidator) self.registerField('groupCount*', self.groupsLine) self.b1 = QtWidgets.QCheckBox("Females") self.b1.setChecked(False) self.registerField('females', self.b1) comboLabel = QtWidgets.QLabel('Graphic Type:') self.combo = QtWidgets.QComboBox(self) self.combo.addItem('Allele Counts') self.combo.addItem('Allele Heatmap') self.combo.addItem('Allele Stack') self.combo.addItem('Allele Geo-Map') self.registerField('graphic', self.combo) grid = QtWidgets.QGridLayout() grid.setSpacing(10) grid.addWidget(dataLabel, 1, 0) grid.addWidget(self.dataLine, 1, 1) grid.addWidget(dataBtn, 1, 2) grid.addWidget(allelesLabel, 2, 0) grid.addWidget(self.allelesLine, 2, 1) grid.addWidget(groupsLabel, 3, 0) grid.addWidget(self.groupsLine, 3, 1) grid.addWidget(self.b1, 5, 1) grid.addWidget(comboLabel, 4, 0) grid.addWidget(self.combo, 4, 1) self.setLayout(grid)
def get_moment_layout(self): self.moment = QtWidgets.QGroupBox('Moment') # The moment range boxes self.mr = [] self.mr.append(QtWidgets.QLabel('Channel:', self)) self.mr.append( QtWidgets.QLineEdit('{:4d}'.format(self.range[2][0]), self)) self.mr.append(QtWidgets.QLabel(' to ', self)) self.mr.append( QtWidgets.QLineEdit('{:4d}'.format(self.range[2][1]), self)) # The mask buttons self.momentmask = [] masklabel = [ 'Use mask for moment-0 with values above RMS of: ', 'Use mask for moment-1 with values above RMS of: ', 'Use mask for moment-2 with values above RMS of: ' ] for label in masklabel: self.momentmask.append(QtWidgets.QCheckBox(label)) self.momentmaskvalue = [] for mmval in self.mmaskval: self.momentmaskvalue.append( QtWidgets.QLineEdit('{:10.7f}'.format(mmval), self)) # Gaussian moment plot self.gaussianmoment = QtWidgets.QCheckBox('Gaussian moment') self.gaussianmoment.setChecked(False) # update moment button self.momentbutton = QtWidgets.QPushButton('Calculate Moments', self) self.momentbutton.clicked.connect(self.get_moments) # create layout layout = QtWidgets.QGridLayout() for idx in np.arange(4): layout.addWidget(self.mr[idx], 0, idx) for idx in np.arange(3): layout.addWidget(self.momentmask[idx], idx + 1, 0, 1, 3) layout.addWidget(self.momentmaskvalue[idx], idx + 1, 3) layout.addWidget(self.gaussianmoment, 4, 0, 1, 4) layout.addWidget(self.momentbutton, 5, 0, 1, 4) self.moment.setLayout(layout)
def __init__(self): super().__init__() with open('style.qss', 'r') as f: self.setStyleSheet(f.read()) self.setWindowTitle('Usporedba COVID-19 i SARS epidemije') self.setGeometry(0, 0, 1080, 720) self.setWindowIcon(QIcon('windowIcon')) self._main = QtWidgets.QWidget() self.setCentralWidget(self._main) dropdown = QComboBox() dropdown.addItems(cov2.groups.keys()) dropdown.resize(100, 50) dropdown.setFont(QFont('Ubuntu', 11, QFont.Medium)) dropdown.currentTextChanged.connect(self.on_combobox_changed) button = QPushButton('Snimi podatke') button.setFont(QFont('Ubuntu', 11, QFont.Medium)) button.clicked.connect(self.on_button_click) self.canvas = FigureCanvasQTAgg(Figure(figsize=(4, 4))) self.canvas.figure.add_subplot(2, 2, 1) self.canvas.figure.add_subplot(2, 2, 2) self.canvas.figure.add_subplot(2, 2, 3) self.canvas.figure.add_subplot(2, 2, 4) self.country = list(cov2.groups.keys())[0] self.update_all_graphs() set_mpl(self.canvas.figure.get_axes()) grid = QtWidgets.QGridLayout(self._main) grid.setSpacing(20) grid.addWidget(dropdown, 1, 3, 1, 2) # row, col, rowspan, colspan grid.addWidget(button, 1, 5, 1, 1) grid.addWidget(self.canvas, 3, 0, 8, 8) grid.setContentsMargins(50, 50, 50, 50) self.setLayout(grid) self.showMaximized()
def __init__(self): self.qapp = QtWidgets.QApplication(sys.argv) super(TimePlot, self).__init__() self._main = QtWidgets.QWidget() self.setCentralWidget(self._main) self.layout = QtWidgets.QGridLayout(self._main) # Empty objects that will be used during visualization. self.fig = None self.frames = None # Slider stuff hbox_timeline = QtWidgets.QHBoxLayout() self.slider = QtWidgets.QSlider(QtCore.Qt.Horizontal) self.slider.setMinimum(0) self.slider.valueChanged.connect(self.slider_valuechanged) hbox_timeline.addWidget(self.slider) self.layout.addLayout(hbox_timeline, 1, 0) # Bottom buttons hbox_buttons = QtWidgets.QHBoxLayout() hbox_buttons.addStretch(1) # Button for saving movies. save_movie_btn = QtWidgets.QPushButton( "&Save as movie") # Shortcut is Alt+S save_movie_btn.clicked.connect(self._save_movie_clicked) # Button for next episode. next_btn = QtWidgets.QPushButton("&Next episode") # Shortcut is Alt+N next_btn.clicked.connect(self._next_clicked) # Quit button. quit_btn = QtWidgets.QPushButton("&Quit") # Shortcut is Alt+Q quit_btn.clicked.connect(self.closeEvent) # Add buttons to widget. hbox_buttons.addWidget(save_movie_btn) hbox_buttons.addWidget(next_btn) hbox_buttons.addWidget(quit_btn) self.layout.addLayout(hbox_buttons, 2, 0) self.is_closed = False self.is_playing = False
def initUI(self): self.setWindowTitle(self.title) self.setGeometry(self.left, self.top, self.width, self.height) # get the individual panels self.get_canvas1_layout() self.get_canvas2_layout() self.get_template_layout() self.get_filter_layout() self.get_print_layout() # add to layout mainLayout = QtWidgets.QGridLayout() mainLayout.addWidget(self.canvas1, 0, 0, 4, 6) mainLayout.addWidget(self.canvas2, 4, 0, 4, 6) mainLayout.addWidget(self.template, 0, 6, 1, 1) mainLayout.addWidget(self.filter, 1, 6, 6, 1) mainLayout.addWidget(self.print, 7, 6, 1, 1) self.setLayout(mainLayout) # draw the intial figure self.update_figures()
def initUI(self): self.setWindowTitle(self.title) self.setGeometry(self.left, self.top, self.width, self.height) # get the indivudal panels self.get_parameter_layout() self.get_chanselect_layout() self.get_controls_layout() self.get_canvas1_layout() self.get_canvas2_layout() # add to layout mainLayout = QtWidgets.QGridLayout() mainLayout.addWidget(self.canvas1, 0, 0, 3, 2) mainLayout.addWidget(self.canvas2, 0, 3, 3, 2) mainLayout.addWidget(self.parameter, 0, 6, 3, 1) mainLayout.addWidget(self.controls, 3, 0, 1, 6) mainLayout.addWidget(self.chanselect, 3, 6, 1, 1) self.setLayout(mainLayout) # update/create the figures self.update_figures()
def get_NIRSpec_layout(self): self.NIRSpec = QtWidgets.QGroupBox('NIRSpec spectral ranges') self.Nspec = [] for idx, filt in enumerate(self.Nsmodes): self.Nspec.append(QtWidgets.QCheckBox(filt, self)) self.Nspec.append(QtWidgets.QLabel('Color: ', self)) self.Nspec.append( QtWidgets.QLineEdit('{:6.4f}'.format(self.Nscolors[idx]), self)) for idx in np.arange(len(self.Nsmodes)): self.Nspec[3 * idx].stateChanged.connect(self.update_figures) self.Nspec[3 * idx + 2].returnPressed.connect( self.update_Nspeccolor) self.Nsselectall = QtWidgets.QPushButton('Select all', self) self.Nsselectall.clicked.connect(self.update_Nsselectall) # the layout layout = QtWidgets.QGridLayout() for idx in np.arange(len(self.Nsmodes)): for idx2 in np.arange(3): layout.addWidget(self.Nspec[3 * idx + idx2], idx, idx2) layout.addWidget(self.Nsselectall, 3 * idx + 1, 0, 1, 2) self.NIRSpec.setLayout(layout)
def get_MIRIfilters_layout(self): self.MIRIfilter = QtWidgets.QGroupBox('MIRI filters') self.Mfilter = [] for idx, filt in enumerate(self.Mfilters): self.Mfilter.append(QtWidgets.QCheckBox(filt, self)) self.Mfilter.append(QtWidgets.QLabel('Color: ', self)) self.Mfilter.append( QtWidgets.QLineEdit('{:6.4f}'.format(self.Mfcolors[idx]), self)) for idx in np.arange(len(self.Mfilters)): self.Mfilter[3 * idx].stateChanged.connect(self.update_figures) self.Mfilter[3 * idx + 2].returnPressed.connect( self.update_Mfiltercolor) self.Mfselectall = QtWidgets.QPushButton('Select all', self) self.Mfselectall.clicked.connect(self.update_Mfselectall) # the layout layout = QtWidgets.QGridLayout() for idx in np.arange(len(self.Mfilters)): for idx2 in np.arange(3): layout.addWidget(self.Mfilter[3 * idx + idx2], idx, idx2) layout.addWidget(self.Mfselectall, 3 * idx + 1, 0, 1, 2) self.MIRIfilter.setLayout(layout)
def __init__(self, parent=None): super(Page4, self).__init__(parent) integerValidator = QtGui.QIntValidator(0, 10, self) comboLabel = QtWidgets.QLabel('Graphic Type:') dataLabel = QtWidgets.QLabel('Data Directory:') self.dataLine = QtWidgets.QLineEdit() dataBtn = QtWidgets.QPushButton('File', self) dataBtn.clicked.connect(self.getDir) self.registerField('popDir*', self.dataLine) allelesLabel = QtWidgets.QLabel('Number of alleles:') self.allelesLine = QtWidgets.QLineEdit() self.allelesLine.setValidator(integerValidator) self.registerField('alleleCount2*', self.allelesLine) groupsLabel = QtWidgets.QLabel('Number of Groups:') self.groupsLine = QtWidgets.QLineEdit() self.groupsLine.setValidator(integerValidator) self.registerField('groupCount2*', self.groupsLine) self.b1 = QtWidgets.QCheckBox("Females") self.b1.setChecked(False) self.registerField('females', self.b1) grid = QtWidgets.QGridLayout() grid.setSpacing(10) grid.addWidget(dataLabel, 1, 0) grid.addWidget(self.dataLine, 1, 1) grid.addWidget(dataBtn, 1, 2) grid.addWidget(allelesLabel, 2, 0) grid.addWidget(self.allelesLine, 2, 1) grid.addWidget(groupsLabel, 3, 0) grid.addWidget(self.groupsLine, 3, 1) grid.addWidget(self.b1, 4, 1) self.setLayout(grid)
def get_parameter_layout(self): self.parameter = QtWidgets.QGroupBox('Model Parameters') # line edits for all of the parameters self.nparameters = len(self.qube.initpar) self.lepar_label = [] self.lepar = [] for idx, key in enumerate(self.qube.initpar.keys()): self.lepar_label.append(QtWidgets.QLabel(self)) self.lepar_label[idx].setText(key + ': ') strval = str(self.qube.initpar[key]['Value']) self.lepar.append(QtWidgets.QLineEdit(strval, self)) # the GO button self.gobutton = QtWidgets.QPushButton('OK', self) self.gobutton.clicked.connect(self.update_model) # layout layout = QtWidgets.QGridLayout() for idx in np.arange(self.nparameters): layout.addWidget(self.lepar_label[idx], idx, 0) layout.addWidget(self.lepar[idx], idx, 1) layout.addWidget(self.gobutton, idx + 1, 0, 1, 2) self.parameter.setLayout(layout)
def initUI(self): self.setWindowTitle(self.title) self.setGeometry(self.left, self.top, self.width, self.height) # get the individual panels self.get_chanselect_layout() self.get_controls_layout() self.get_dataselection_layout() self.get_moment_layout() self.get_plotselection_layout() self.get_canvas_layout() # add to layout mainLayout = QtWidgets.QGridLayout() mainLayout.addWidget(self.canvas, 0, 0, 3, 3) mainLayout.addWidget(self.chanselect, 3, 1) mainLayout.addWidget(self.controls, 3, 0) mainLayout.addWidget(self.dataselection, 0, 3) mainLayout.addWidget(self.moment, 1, 3) mainLayout.addWidget(self.plotselection, 3, 3) self.setLayout(mainLayout) # update/create the figures self.update_figure()
def __init__(self,wib_server='127.0.0.1',config='default.json',rows=1,cols=1,layout=None): super().__init__() plot_layout = layout self.context = zmq.Context() self.socket = self.context.socket(zmq.REQ) self.socket.connect('tcp://%s:1234'%wib_server) self.config = config self.samples = None self.timestamps = None self._main = QtWidgets.QWidget() self._main.setFocusPolicy(QtCore.Qt.StrongFocus) self.setCentralWidget(self._main) layout = QtWidgets.QVBoxLayout(self._main) button_layout = QtWidgets.QHBoxLayout() button = QtWidgets.QPushButton('Reshape') button_layout.addWidget(button) button.setToolTip('Change the plot grid shape') button.clicked.connect(self.reshape_prompt) button = QtWidgets.QPushButton('Load Layout') button_layout.addWidget(button) button.setToolTip('Save plot layout and selected signals') button.clicked.connect(self.load_layout) button = QtWidgets.QPushButton('Save Layout') button_layout.addWidget(button) button.setToolTip('Load plot layout and selected signals') button.clicked.connect(self.save_layout) layout.addLayout(button_layout) self.grid = QtWidgets.QGridLayout() self.views = [] self.reshape(rows,cols) layout.addLayout(self.grid) nav_layout = QtWidgets.QHBoxLayout() button = QtWidgets.QPushButton('Configure') nav_layout.addWidget(button) button.setToolTip('Configure WIB and front end') button.clicked.connect(self.configure_wib) button = QtWidgets.QPushButton('Enable Pulser') nav_layout.addWidget(button) button.setToolTip('Toggle calibration pulser') button.clicked.connect(self.toggle_pulser) self.pulser_button = button button = QtWidgets.QPushButton('Acquire') nav_layout.addWidget(button) button.setToolTip('Read WIB Spy Buffer') button.clicked.connect(self.acquire_data) button = QtWidgets.QPushButton('Continuous') nav_layout.addWidget(button) button.setToolTip('Repeat acquisitions until stopped') button.clicked.connect(self.toggle_continuious) self.continuious_button = button self.timer = QtCore.QTimer(self) self.timer.timeout.connect(self.acquire_data) layout.addLayout(nav_layout) if plot_layout: self.load_layout(plot_layout) self.plot_selected()