def log_correlations_plot(self): self.mw = MatplotlibWidget(size=(22.0, len(self.interestedLognames)*1.6), dpi=100) self.logscrollArea.setWidget(self.mw) print('Plotting...') self.ax=[] for i,logname in enumerate(self.normlogs.keys()): self.ax.append(self.mw.getFigure().add_subplot(len(self.normlogs),1,i+1) ) l, b, w, h = self.ax[-1].get_position().bounds self.ax[-1].set_position([0.27,b+0.1,0.7,h]) # self.log_col=self.las[logname] # self.log_col[np.isnan(self.log_col)]=0 # norm_blog=mean_norm(self.log_col)#[0:800] depthb_shift=self.depth_col+self.delays[logname] self.ax[-1].plot(self.depth_col,self.normlogs[logname],'b') self.ax[-1].plot(self.depth_col,self.norm_gamma,'r') self.ax[-1].plot(depthb_shift,self.normlogs[logname],'magenta') self.ax[-1].text(self.depth_col[0]-50,0.02,logname) lenax=len(self.ax) for i,logname in enumerate(self.lag_corrs.keys()): self.ax.append(self.mw.getFigure().add_subplot(len(self.normlogs),2,lenax+i+1) ) l, b, w, h = self.ax[i].get_position().bounds self.ax[-1].set_position([0.03,b,0.21,h]) self.ax[-1].plot(self.lag_corrs[logname][0],self.lag_corrs[logname][1],'b') self.ax[-1].text(self.delays[logname],min(self.lag_corrs[logname][1]),'Delay = %.2f'%self.delays[logname]) line = self.ax[-1].axvline(x=self.delays[logname], ymin=-1, ymax = +1, linewidth=1.5, color='c') self.ax[-1].text(self.lag_corrs[logname][0][0],0.4,logname) self.mw.draw() print('Complete...')
def handle_new_window(self, graph, **kwargs): """ Handles visualizing and possibility of new popup windows. Creates a Matplotlib widget instead of a Pyqtgraph widget. """ if graph is None: # If we want to use a separate window if 'window' in kwargs: # Check whether this window exists if not kwargs['window'] in self.gui.windows: if 'window_title' in kwargs: window_title = kwargs['window_title'] else: window_title = 'Graph Holder' self.gui.windows[kwargs['window']] = GraphPopup( window_title=window_title, size=(700, 300) ) self.graph = MatplotlibWidget() self.gui.windows[kwargs['window']].graph_layout.addWidget( self.graph ) # Otherwise, add a graph to the main layout else: self.graph = self.gui.add_graph() # Reuse a PlotWidget if provided else: self.graph = graph
def __init__(self, parent=None): super(mainApp, self).__init__(parent) self.setMinimumWidth(1040 / 2) self.setMinimumHeight(1392 / 2) self.layout = qt.QGridLayout() self.widget = qt.QWidget() self.widget.setLayout(self.layout) self.setCentralWidget(self.widget) args = parser.parse_args() self.currentDirectory = os.path.abspath(args.directory) self.selectedDir = None self.table = qt.QListWidget() self.table.setMinimumWidth(200) self.table.setMaximumWidth(250) self.textedit = qt.QTextEdit() self.textedit.setMaximumHeight(150) self.textedit.setMinimumWidth(200) self.textedit.setMaximumWidth(250) self.update_directory_list() self.mw = MatplotlibWidget() self.mw.setMinimumWidth(1400) self.layout.addWidget(self.table, 0, 0, 1, 1) self.layout.addWidget(self.textedit, 1, 0, 1, 1) self.layout.addWidget(self.mw, 0, 1, 2, 3) # self.timer = qt.QTimer() # self.timer.timeout.connect(self.update_directory_list) # self.timer.start(10000) self.table.itemClicked.connect(self.analyse_image) self.table.itemDoubleClicked.connect(self.change_directory)
def __init__(self): super(MainWindow, self).__init__() mw = MatplotlibWidget() subplot = mw.getFigure().add_subplot(111) mw.draw() # print(dir(mw)) # layout=QHBoxLayout() # mylabel=QLabel('Hi') # layout.addWidget(mylabel) # layout.addWidget(mw) # self.setLayout(layout) layout = QFormLayout() self.btn = QPushButton("Choose from list") self.btn.clicked.connect(self.getItem) self.le = QLineEdit() layout.addRow(self.btn, self.le) self.btn1 = QPushButton("get name") self.btn1.clicked.connect(self.gettext) self.le1 = QLineEdit() layout.addRow(self.btn1, self.le1) self.btn2 = QPushButton("Enter an integer") self.btn2.clicked.connect(self.getint) self.le2 = QLineEdit() layout.addRow(self.btn2, self.le2) self.setLayout(layout) self.setWindowTitle("Input Dialog demo") layout.addRow(mw)
def showResults(self, ): """ Plots BMD change using matplotlib """ # Create plot window if self.plotWin == None: self.plotWin = QtGui.QDialog(self, QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint | \ QtCore.Qt.WindowMinimizeButtonHint | QtCore.Qt.WindowMaximizeButtonHint) self.plotWin.setWindowTitle('BMDanalyse') self.plotWin.setWindowIcon(self.icons['BMDanalyseIcon']) self.plotWin.setMinimumSize(600, 500) self.plotWin.resize(self.minimumSize()) # Create Matplotlib widget self.mplw = MatplotlibWidget(size=(5, 6)) self.fig = self.mplw.getFigure() self.editDataButton = QtGui.QPushButton('Edit plot') self.exportCSVButton = QtGui.QPushButton('Export data') self.mplw.toolbar.addWidget(self.editDataButton) self.mplw.toolbar.addWidget(self.exportCSVButton) self.editDataButton.clicked.connect(self.showEditBox) self.exportCSVButton.clicked.connect(self.BMDtoCSVfile) # Format plot window self.plotWinLayout = QtGui.QVBoxLayout() self.plotWinLayout.addWidget(self.mplw) self.plotWin.setLayout(self.plotWinLayout) self.createFigure() self.plotWin.show() self.mplw.draw()
def __init__(self, args): super().__init__() self.setObjectName('I') self.main_layout = main_layout = QtGui.QVBoxLayout() self.setLayout(main_layout) self.plot_widget = MatplotlibWidget() btn_layout = QtGui.QHBoxLayout() self.startstop = QtGui.QPushButton(self) self.startstop.setText('Start') self.label = QtGui.QLabel(self) self.display_label(0) self.save_btn = QtGui.QPushButton('Save', self) btn_layout.addWidget(self.startstop) btn_layout.addWidget(self.save_btn) btn_layout.addWidget(self.label) main_layout.addWidget(self.plot_widget) main_layout.addLayout(btn_layout) self.startstop.clicked.connect(self.on_startstop_clicked) self.save_btn.clicked.connect(self.save_to_file) print('INIT')
def createPlotWidget(self): """ Creates the plotWidget """ self.vbLayout=QVBoxLayout(self) self.plotLayout=pg.LayoutWidget() self.vbLayout.addWidget(self.plotLayout) row=0 col=0 lineWidthLabel=QLabel('Line width') self.lineWidthLineEdit=QLineEdit('2') self.lineWidthLineEdit.returnPressed.connect(self.updatePlot) pointSizeLabel=QLabel('Point size') self.pointSizeLineEdit=QLineEdit('5') self.pointSizeLineEdit.returnPressed.connect(self.updatePlot) self.bgCheckBox=QCheckBox('White BG') self.bgCheckBox.stateChanged.connect(self.bgCheckBoxChanged) self.errorbarCheckBox=QCheckBox('Errorbar') self.errorbarCheckBox.stateChanged.connect(self.errorbarChanged) self.plotLayout.addWidget(lineWidthLabel,row=row,col=col) col+=1 self.plotLayout.addWidget(self.lineWidthLineEdit,row=row,col=col) col+=1 self.plotLayout.addWidget(pointSizeLabel,row=row,col=col) col+=1 self.plotLayout.addWidget(self.pointSizeLineEdit,row=row,col=col) col+=1 self.plotLayout.addWidget(self.bgCheckBox,row=row,col=col) col+=1 self.plotLayout.addWidget(self.errorbarCheckBox,row=row,col=col) col=0 row+=1 if self.matplotlib: self.plotWidget=MatplotlibWidget() self.subplot=self.plotWidget.getFigure().add_subplot(111) self.plotWidget.fig.set_tight_layout(True) self.plotWidget.draw() else: self.plotWidget=pg.PlotWidget() self.plotWidget.getPlotItem().vb.scene().sigMouseMoved.connect(self.mouseMoved) self.legendItem=pg.LegendItem(offset=(0.0,1.0)) self.legendItem.setParentItem(self.plotWidget.getPlotItem()) self.plotLayout.addWidget(self.plotWidget,row=row,col=col,colspan=6) row+=1 col=0 self.crosshairLabel=QLabel(u'X={: .5f} , y={: .5f}'.format(0.0,0.0)) self.xLogCheckBox=QCheckBox('LogX') self.xLogCheckBox.setTristate(False) self.xLogCheckBox.stateChanged.connect(self.updatePlot) self.yLogCheckBox=QCheckBox('LogY') self.yLogCheckBox.setTristate(False) self.yLogCheckBox.stateChanged.connect(self.updatePlot) if not self.matplotlib: self.plotLayout.addWidget(self.crosshairLabel,row=row,col=col,colspan=4) self.plotLayout.addWidget(self.xLogCheckBox,row=row,col=4) self.plotLayout.addWidget(self.yLogCheckBox,row=row,col=5)
def test_init_with_matplotlib_arguments(): """ Tests the contructor that sets variables associated with Matplotlib and abstracts away any details about the underlying QWidget parent class. """ figsize = (1.0, 3.0) dpi = 256 mplw = MatplotlibWidget(figsize, dpi) assert_widget_fields(mplw, default_parent, figsize, dpi)
def test_init_with_qwidget_arguments(): """ Ensures providing only the parent argument to the constructor properly intializes the widget to match the QWidget constructor prototype. """ win = QtWidgets.QMainWindow() mplw = MatplotlibWidget(win) assert_widget_fields(mplw, win, default_figsize, default_dpi)
def logPlotPanel(self): print('Initiating plot widget...') self.logname = self.lastree.tree.selectedItems()[0].text(0) depthcol_name = 'DEPTH' # firstlog logdata = [] depthdata = [] self.mw = MatplotlibWidget(size=(22.0, 4), dpi=100) self.logscrollArea.setWidget(self.mw) self.ax = self.mw.getFigure().add_subplot(1, 1, 1) self.filtw = MatplotlibWidget(size=(22.0, 4), dpi=100) self.filtscrollArea.setWidget(self.filtw) ax2 = self.filtw.getFigure().add_subplot(1, 1, 1) for i, lb in enumerate(self.log_bundle): # print(lb[self.logname],lb[depthcol_name]) self.ax.plot(lb[depthcol_name], lb[self.logname]) ax2.plot(lb[depthcol_name], self.flt_logs[self.logname][i])
def test_init_sanity(): """ Tests to ensure the constructor behaves as expected. """ parent = QtWidgets.QMainWindow() figsize = (1.0, 4.0) dpi = 256 # These tests will not work if these two assertions do not hold. assert figsize != default_figsize assert dpi != default_dpi mplw = MatplotlibWidget(parent, figsize=figsize) assert_widget_fields(mplw, parent, figsize, default_dpi) mplw = MatplotlibWidget(parent, dpi=dpi) assert_widget_fields(mplw, parent, default_figsize, dpi) mplw = MatplotlibWidget(parent, figsize, dpi) assert_widget_fields(mplw, parent, figsize, dpi) mplw = MatplotlibWidget(figsize, dpi) assert_widget_fields(mplw, default_parent, figsize, dpi) mplw = MatplotlibWidget(figsize, dpi, parent) assert_widget_fields(mplw, parent, figsize, dpi) mplw = MatplotlibWidget(dpi=dpi, parent=parent) assert_widget_fields(mplw, parent, default_figsize, dpi)
def histFilter(self): depthcol_name='DEPTH' self.filtw = MatplotlibWidget(size=(22.0, 4), dpi=100 ) self.filtscrollArea.setWidget(self.filtw) ax=self.filtw.getFigure().add_subplot(1,1,1) hist_bins=np.int(self.n_hist_segments_le.text()) n_big_patches=np.int(self.n_patches2retain_le.text()) self.flt_logs[self.logname]=[] for i,lb in enumerate(self.log_bundle): self.flt_logs[self.logname][i]=hist_filter(lb[self.logname].copy(),n_big_patches=n_big_patches,hist_bins=hist_bins) ax.plot(lb[depthcol_name],self.flt_logs[self.logname][i])
def histFilter(self): depthcol_name = 'DEPTH' self.filtw = MatplotlibWidget(size=(22.0, 4), dpi=100) self.filtscrollArea.setWidget(self.filtw) ax = self.filtw.getFigure().add_subplot(1, 1, 1) flt_arrs = [] hist_bins = np.int(self.n_hist_segments_le.text()) n_big_patches = np.int(self.n_patches2retain_le.text()) for lb in self.log_bundle: flt_arrs.append( hist_filter(lb[self.logname].copy(), n_big_patches=n_big_patches, hist_bins=hist_bins)) ax.plot(lb[depthcol_name], flt_arrs[-1])
def _create_expected_answered_ease_heatmap(self): chosen_ease = ['1', '2', '3', '4'] expected_ease = ['1', '2', '3'] answers = [[t.expected_ease, t.chosen_ease] for t in RevisionAnswer.select(RevisionAnswer.expected_ease, RevisionAnswer.chosen_ease)] df = pandas.DataFrame(answers, columns=['expected_ease', 'chosen_ease']).groupby([ 'expected_ease', 'chosen_ease' ]).size().unstack(fill_value=0) mat = df.to_numpy() print(mat) mw = MatplotlibWidget() fig = mw.getFigure() ax = fig.add_subplot() im = ax.imshow(df) ax.set_xticks(numpy.arange(len(chosen_ease))) ax.set_yticks(numpy.arange(len(expected_ease))) ax.set_xticklabels(chosen_ease) ax.set_yticklabels(expected_ease) ax.set_xlabel("Chosen ease") ax.set_ylabel("Expected ease") pyplot.setp(ax.get_xticklabels(), rotation=45, ha="right", rotation_mode="anchor") for i in range(len(chosen_ease)): for j in range(len(expected_ease)): text = ax.text(i, j, mat[j, i], ha="center", va="center", color="w") fig.tight_layout() mw.draw() self.layout.addWidget(mw)
def __init__(self): super(VESViewer, self).__init__() self.createActions() self.createMenus() win = QWidget() self.setCentralWidget(win) self.plotlayout = QHBoxLayout(self) self.init_m = np.append(self.init_res, self.init_thicks) self.datapath = self.proj_path + 'VESData/' # creates plot # self.plot = pg.PlotWidget() self.mw = MatplotlibWidget() self.subplot1 = self.mw.getFigure().add_subplot(121) self.subplot2 = self.mw.getFigure().add_subplot(122) self.mw.draw() self.plotlayout.addWidget(self.mw) # mltoolbar=self.mw.get_ToolBar() layout = BorderLayout() layout.add(self.plotlayout, BorderLayout.Center) self.list_w = QListWidget() # self.listitem.append(QListWidgetItem('Welcome to ResLayer!!!')) self.list_w.setFrameStyle(QFrame.Box | QFrame.Raised) layout.add(QWidgetItem(self.list_w), BorderLayout.West) win.setLayout(layout) # self.list_w.addItem(self.listitem[0]) # self.list_w.itemClicked.connect(self.OnSingleClick) self.list_w.itemSelectionChanged.connect(self.OnSingleClick) self.setWindowTitle("Border Layout") mypen = pg.mkPen('y', width=1) # self.curve = self.plot.plot(x=[], y=[], pen=mypen) # self.plot.addItem(self.curve) files = os.listdir(self.datapath) for f in files: self.listitem.append(QListWidgetItem(f[:-4])) self.list_w.addItem(self.listitem[-1]) self.vdf = pd.read_csv(self.datapath + files[0], header=None) self.plotVES()
def __init__(self): super(MainWindow, self).__init__() self.setGeometry(100, 100, 600, 900) self.centralWidget = QWidget() # GrphicsWidget() layout = QHBoxLayout(self.centralWidget) self.scrollArea = QScrollArea(self) # gwidget=GrphicsWidget() self.mw = MatplotlibWidget(size=(3.0, 40.0), dpi=100) lplot = self.mw.getFigure().add_subplot(121) # print(dir(self.mw.getFigure())) # self.mw.getFigure().set_axes([0.85, 0.1, 0.075, 0.8]) self.ax = self.mw.getFigure().gca() self.ax.set_position([0.1, 0.05, 0.8, 0.94]) self.ax.invert_yaxis() # l, b, w, h = self.ax.get_position().bounds # print(l, b, w, h) self.mw.draw() # self.plotlayout.addWidget(self.mw) self.scrollArea.setWidget(self.mw) layout.addWidget(self.scrollArea) self.setCentralWidget(self.centralWidget) self.lastree = LasTree() self.logtree = LasTree() self.wellLoad() self.logtree.set_files(['GR', 'BS']) self.logtree.buildTreeWidget() self.logtree.tree.itemSelectionChanged.connect(self.logPlot) self.createDockWindows() # self.logFileList.itemSelectionChanged.connect(self.lasLoad) # if not self.las_just_selected: # self.logList.itemSelectionChanged.connect(self.logPlot) self.setWindowTitle("Loggy")
def __init__(self, args): super().__init__() self.main_layout = main_layout = QtGui.QVBoxLayout() self.setLayout(main_layout) self.startstop_button = QtGui.QPushButton('Start', self) self.save_button = QtGui.QPushButton('Save', self) self.label = QtGui.QLabel(self) self.display_time(0) self.plot_widget = MatplotlibWidget() main_layout.addWidget(self.startstop_button) main_layout.addWidget(self.label) main_layout.addWidget(self.plot_widget) main_layout.addWidget(self.save_button) self.startstop_button.clicked.connect(self.on_startstop_clicked) self.save_button.clicked.connect(self.save_to_file)
def __init__(self, *args, **kwargs): log.info('') super().__init__(*args, **kwargs) self.points = None self._axis_aitoff_text_labels = [] self.mw = MatplotlibWidget() self.mw.toolbar.hide() self.subplot = self.mw.getFigure().add_subplot(111, projection="aitoff") self.subplot.grid('on') # # Add some dummy points # self.mw.draw() self.subplot_background = self.subplot.get_figure( ).canvas.copy_from_bbox(self.subplot.bbox) self.addWidget(self.mw)
def __init__(self, experiment, chemical, selection_widget): super(SplatalogueAssignmentWindow, self).__init__() self.setWindowIcon(QIcon(QPixmap(images.LOGO_ICON))) self.setAttribute(Qt.WA_DeleteOnClose) self.setWindowTitle("Splatalogue Assignment Window") self.resize(1500, 750) ''' Data ''' self.experiment = experiment self.chemical = chemical ''' Widgets ''' self.info_widget = SplatalogueInfoWidget(chemical) self.table_widget = QTableWidget() self.matplot_widget = MatplotlibWidget() self.selection_widget = selection_widget '''Colors''' self.color___experiment_edge = SplatalogueAssignmentWindow.EXPERIMENT_EDGE_COLOR self.color___face_color = SplatalogueAssignmentWindow.FACE_COLOR self.__setup__()
def __init__(self, args): self.app = QtGui.QApplication([]) QtGui.QWidget.__init__(self) self.main_layout = main_layout = QtGui.QVBoxLayout() self.setLayout(main_layout) self.btn = QtGui.QPushButton('Start', self) main_layout.addWidget(self.btn) self.label = QtGui.QLabel(self) self.label.setText('Bonjour') main_layout.addWidget(self.label) self.btn.clicked.connect(self.on_btn_clicked) self.w_plot = MatplotlibWidget() main_layout.addWidget(self.w_plot) self.plot_data([1, 2, 1, 5]) instr = vxi11.Instrument('134.157.91.150') self.scope = TektronixScope(instr) self.display_time(0)
def test_init_with_no_arguments(): mplw = MatplotlibWidget() assert_widget_fields(mplw, default_parent, default_figsize, default_dpi)
def setupUi(self, MainWindow): MainWindow.setObjectName("MainWindow") MainWindow.resize(1022, 952) MainWindow.setMinimumSize(QtCore.QSize(1022, 952)) icon = QtGui.QIcon() icon.addPixmap(QtGui.QPixmap(".\\assets/MainIcon.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) MainWindow.setWindowIcon(icon) self.centralwidget = QtWidgets.QWidget(MainWindow) self.centralwidget.setObjectName("centralwidget") self.verticalLayout_16 = QtWidgets.QVBoxLayout(self.centralwidget) self.verticalLayout_16.setObjectName("verticalLayout_16") self.gridLayout = QtWidgets.QGridLayout() self.gridLayout.setObjectName("gridLayout") self.label_11 = QtWidgets.QLabel(self.centralwidget) font = QtGui.QFont() font.setPointSize(10) font.setBold(True) font.setWeight(75) self.label_11.setFont(font) self.label_11.setObjectName("label_11") self.gridLayout.addWidget(self.label_11, 0, 0, 1, 1) self.label_24 = QtWidgets.QLabel(self.centralwidget) font = QtGui.QFont() font.setPointSize(10) font.setBold(True) font.setWeight(75) self.label_24.setFont(font) self.label_24.setObjectName("label_24") self.gridLayout.addWidget(self.label_24, 2, 1, 1, 1) self.spectrogram_before = MatplotlibWidget() self.spectrogram_before.setMinimumSize(QtCore.QSize(470, 227)) self.spectrogram_before.setMaximumSize(QtCore.QSize(946, 228)) self.spectrogram_before.setObjectName("spectrogram_before") self.gridLayout.addWidget(self.spectrogram_before, 3, 0, 1, 1) self.spectrogram_after = MatplotlibWidget() self.spectrogram_after.setMinimumSize(QtCore.QSize(470, 227)) self.spectrogram_after.setMaximumSize(QtCore.QSize(946, 228)) self.spectrogram_after.setObjectName("spectrogram_after") self.gridLayout.addWidget(self.spectrogram_after, 3, 1, 1, 1) self.verticalLayout_4 = QtWidgets.QVBoxLayout() self.verticalLayout_4.setObjectName("verticalLayout_4") self.controlers_before = QtWidgets.QHBoxLayout() self.controlers_before.setObjectName("controlers_before") self.jump_back_btn_before = QtWidgets.QPushButton(self.centralwidget) self.jump_back_btn_before.setText("") icon = QtGui.QIcon() icon.addPixmap(QtGui.QPixmap(".\\assets/fast-backward.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.jump_back_btn_before.setIcon(icon) self.jump_back_btn_before.setObjectName("jump_back_btn_before") self.controlers_before.addWidget(self.jump_back_btn_before) self.play_btn_before = QtWidgets.QPushButton(self.centralwidget) self.play_btn_before.setText("") icon1 = QtGui.QIcon() icon1.addPixmap(QtGui.QPixmap(".\\assets/play.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.play_btn_before.setIcon(icon1) self.play_btn_before.setObjectName("play_btn_before") self.controlers_before.addWidget(self.play_btn_before) self.pause_btn_before = QtWidgets.QPushButton(self.centralwidget) self.pause_btn_before.setText("") icon2 = QtGui.QIcon() icon2.addPixmap(QtGui.QPixmap(".\\assets/pause.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.pause_btn_before.setIcon(icon2) self.pause_btn_before.setObjectName("pause_btn_before") self.controlers_before.addWidget(self.pause_btn_before) self.stop_btn_before = QtWidgets.QPushButton(self.centralwidget) self.stop_btn_before.setText("") icon3 = QtGui.QIcon() icon3.addPixmap(QtGui.QPixmap(".\\assets/stop.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.stop_btn_before.setIcon(icon3) self.stop_btn_before.setObjectName("stop_btn_before") self.controlers_before.addWidget(self.stop_btn_before) self.jump_forward_btn_before = QtWidgets.QPushButton(self.centralwidget) self.jump_forward_btn_before.setText("") icon4 = QtGui.QIcon() icon4.addPixmap(QtGui.QPixmap(".\\assets/fast-forward.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.jump_forward_btn_before.setIcon(icon4) self.jump_forward_btn_before.setObjectName("jump_forward_btn_before") self.controlers_before.addWidget(self.jump_forward_btn_before) self.zoom_in_btn_before = QtWidgets.QPushButton(self.centralwidget) self.zoom_in_btn_before.setText("") icon5 = QtGui.QIcon() icon5.addPixmap(QtGui.QPixmap(".\\assets/zoom-in.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.zoom_in_btn_before.setIcon(icon5) self.zoom_in_btn_before.setObjectName("zoom_in_btn_before") self.controlers_before.addWidget(self.zoom_in_btn_before) self.zoom_out_btn_before = QtWidgets.QPushButton(self.centralwidget) self.zoom_out_btn_before.setText("") icon6 = QtGui.QIcon() icon6.addPixmap(QtGui.QPixmap(".\\assets/zoom-out.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.zoom_out_btn_before.setIcon(icon6) self.zoom_out_btn_before.setObjectName("zoom_out_btn_before") self.controlers_before.addWidget(self.zoom_out_btn_before) self.verticalLayout_4.addLayout(self.controlers_before) self.gridLayout.addLayout(self.verticalLayout_4, 5, 0, 1, 1) self.label_13 = QtWidgets.QLabel(self.centralwidget) font = QtGui.QFont() font.setPointSize(10) font.setBold(True) font.setWeight(75) self.label_13.setFont(font) self.label_13.setObjectName("label_13") self.gridLayout.addWidget(self.label_13, 2, 0, 1, 1) self.label_12 = QtWidgets.QLabel(self.centralwidget) font = QtGui.QFont() font.setPointSize(10) font.setBold(True) font.setWeight(75) self.label_12.setFont(font) self.label_12.setObjectName("label_12") self.gridLayout.addWidget(self.label_12, 0, 1, 1, 1) self.time_before = QtWidgets.QHBoxLayout() self.time_before.setObjectName("time_before") self.current_time_before = QtWidgets.QLabel(self.centralwidget) self.current_time_before.setMinimumSize(QtCore.QSize(80, 0)) self.current_time_before.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) self.current_time_before.setObjectName("current_time_before") self.time_before.addWidget(self.current_time_before) self.time_seeker_before = QtWidgets.QSlider(self.centralwidget) self.time_seeker_before.setOrientation(QtCore.Qt.Horizontal) self.time_seeker_before.setObjectName("time_seeker_before") self.time_before.addWidget(self.time_seeker_before) self.total_time_before = QtWidgets.QLabel(self.centralwidget) self.total_time_before.setMinimumSize(QtCore.QSize(80, 0)) self.total_time_before.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) self.total_time_before.setObjectName("total_time_before") self.time_before.addWidget(self.total_time_before) self.playback_speed_before = QtWidgets.QComboBox(self.centralwidget) font = QtGui.QFont() font.setBold(True) font.setWeight(75) self.playback_speed_before.setFont(font) self.playback_speed_before.setObjectName("playback_speed_before") self.playback_speed_before.addItem("") self.playback_speed_before.addItem("") self.playback_speed_before.addItem("") self.playback_speed_before.addItem("") self.playback_speed_before.addItem("") self.playback_speed_before.addItem("") self.time_before.addWidget(self.playback_speed_before) self.gridLayout.addLayout(self.time_before, 4, 0, 1, 1) self.time_after = QtWidgets.QHBoxLayout() self.time_after.setObjectName("time_after") self.current_time_after = QtWidgets.QLabel(self.centralwidget) self.current_time_after.setMinimumSize(QtCore.QSize(80, 0)) self.current_time_after.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) self.current_time_after.setObjectName("current_time_after") self.time_after.addWidget(self.current_time_after) self.time_seeker_after = QtWidgets.QSlider(self.centralwidget) self.time_seeker_after.setOrientation(QtCore.Qt.Horizontal) self.time_seeker_after.setObjectName("time_seeker_after") self.time_after.addWidget(self.time_seeker_after) self.total_time_after = QtWidgets.QLabel(self.centralwidget) self.total_time_after.setMinimumSize(QtCore.QSize(80, 0)) self.total_time_after.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter) self.total_time_after.setObjectName("total_time_after") self.time_after.addWidget(self.total_time_after) self.playback_speed_after = QtWidgets.QComboBox(self.centralwidget) font = QtGui.QFont() font.setBold(True) font.setWeight(75) self.playback_speed_after.setFont(font) self.playback_speed_after.setObjectName("playback_speed_after") self.playback_speed_after.addItem("") self.playback_speed_after.addItem("") self.playback_speed_after.addItem("") self.playback_speed_after.addItem("") self.playback_speed_after.addItem("") self.playback_speed_after.addItem("") self.time_after.addWidget(self.playback_speed_after) self.gridLayout.addLayout(self.time_after, 4, 1, 1, 1) self.graph_after = PlotWidget(self.centralwidget) self.graph_after.setMinimumSize(QtCore.QSize(470, 227)) self.graph_after.setObjectName("graph_after") self.gridLayout.addWidget(self.graph_after, 1, 1, 1, 1) self.graph_before = PlotWidget(self.centralwidget) self.graph_before.setMinimumSize(QtCore.QSize(470, 227)) self.graph_before.setObjectName("graph_before") self.gridLayout.addWidget(self.graph_before, 1, 0, 1, 1) self.horizontalLayout = QtWidgets.QHBoxLayout() self.horizontalLayout.setObjectName("horizontalLayout") self.verticalLayout_3 = QtWidgets.QVBoxLayout() self.verticalLayout_3.setObjectName("verticalLayout_3") self.controlers_after = QtWidgets.QHBoxLayout() self.controlers_after.setObjectName("controlers_after") self.jump_back_btn_after = QtWidgets.QPushButton(self.centralwidget) self.jump_back_btn_after.setText("") self.jump_back_btn_after.setIcon(icon) self.jump_back_btn_after.setObjectName("jump_back_btn_after") self.controlers_after.addWidget(self.jump_back_btn_after) self.play_btn_after = QtWidgets.QPushButton(self.centralwidget) self.play_btn_after.setText("") self.play_btn_after.setIcon(icon1) self.play_btn_after.setObjectName("play_btn_after") self.controlers_after.addWidget(self.play_btn_after) self.pause_btn_after = QtWidgets.QPushButton(self.centralwidget) self.pause_btn_after.setText("") self.pause_btn_after.setIcon(icon2) self.pause_btn_after.setObjectName("pause_btn_after") self.controlers_after.addWidget(self.pause_btn_after) self.stop_btn_after = QtWidgets.QPushButton(self.centralwidget) self.stop_btn_after.setText("") self.stop_btn_after.setIcon(icon3) self.stop_btn_after.setObjectName("stop_btn_after") self.controlers_after.addWidget(self.stop_btn_after) self.jump_forward_btn_after = QtWidgets.QPushButton(self.centralwidget) self.jump_forward_btn_after.setText("") self.jump_forward_btn_after.setIcon(icon4) self.jump_forward_btn_after.setObjectName("jump_forward_btn_after") self.controlers_after.addWidget(self.jump_forward_btn_after) self.zoom_in_btn_after = QtWidgets.QPushButton(self.centralwidget) self.zoom_in_btn_after.setText("") self.zoom_in_btn_after.setIcon(icon5) self.zoom_in_btn_after.setObjectName("zoom_in_btn_after") self.controlers_after.addWidget(self.zoom_in_btn_after) self.zoom_out_btn_after = QtWidgets.QPushButton(self.centralwidget) self.zoom_out_btn_after.setText("") self.zoom_out_btn_after.setIcon(icon6) self.zoom_out_btn_after.setObjectName("zoom_out_btn_after") self.controlers_after.addWidget(self.zoom_out_btn_after) self.verticalLayout_3.addLayout(self.controlers_after) self.horizontalLayout.addLayout(self.verticalLayout_3) self.gridLayout.addLayout(self.horizontalLayout, 5, 1, 1, 1) self.verticalLayout_14 = QtWidgets.QVBoxLayout() self.verticalLayout_14.setObjectName("verticalLayout_14") self.max_freq_content_label = QtWidgets.QLabel(self.centralwidget) self.max_freq_content_label.setObjectName("max_freq_content_label") self.verticalLayout_14.addWidget(self.max_freq_content_label) self.max_freq_content = QtWidgets.QSlider(self.centralwidget) self.max_freq_content.setMaximum(11) self.max_freq_content.setProperty("value", 11) self.max_freq_content.setOrientation(QtCore.Qt.Vertical) self.max_freq_content.setTickPosition(QtWidgets.QSlider.TicksBothSides) self.max_freq_content.setObjectName("max_freq_content") self.verticalLayout_14.addWidget(self.max_freq_content) self.max_freq_content_lab = QtWidgets.QLabel(self.centralwidget) self.max_freq_content_lab.setAlignment(QtCore.Qt.AlignCenter) self.max_freq_content_lab.setObjectName("max_freq_content_lab") self.verticalLayout_14.addWidget(self.max_freq_content_lab) self.gridLayout.addLayout(self.verticalLayout_14, 1, 2, 1, 1) self.verticalLayout_15 = QtWidgets.QVBoxLayout() self.verticalLayout_15.setObjectName("verticalLayout_15") self.min_freq_content_label = QtWidgets.QLabel(self.centralwidget) self.min_freq_content_label.setObjectName("min_freq_content_label") self.verticalLayout_15.addWidget(self.min_freq_content_label) self.min_freq_content = QtWidgets.QSlider(self.centralwidget) self.min_freq_content.setMaximum(11) self.min_freq_content.setOrientation(QtCore.Qt.Vertical) self.min_freq_content.setTickPosition(QtWidgets.QSlider.TicksBothSides) self.min_freq_content.setObjectName("min_freq_content") self.verticalLayout_15.addWidget(self.min_freq_content) self.min_freq_content_lab = QtWidgets.QLabel(self.centralwidget) self.min_freq_content_lab.setAlignment(QtCore.Qt.AlignCenter) self.min_freq_content_lab.setObjectName("min_freq_content_lab") self.verticalLayout_15.addWidget(self.min_freq_content_lab) self.gridLayout.addLayout(self.verticalLayout_15, 3, 2, 1, 1) self.verticalLayout_16.addLayout(self.gridLayout) self.horizontalLayout_2 = QtWidgets.QHBoxLayout() self.horizontalLayout_2.setObjectName("horizontalLayout_2") self.verticalLayout = QtWidgets.QVBoxLayout() self.verticalLayout.setObjectName("verticalLayout") self.label = QtWidgets.QLabel(self.centralwidget) self.label.setObjectName("label") self.verticalLayout.addWidget(self.label) self.band_1 = QtWidgets.QSlider(self.centralwidget) self.band_1.setMaximum(8) self.band_1.setPageStep(1) self.band_1.setProperty("value", 4) self.band_1.setOrientation(QtCore.Qt.Vertical) self.band_1.setTickPosition(QtWidgets.QSlider.TicksBothSides) self.band_1.setObjectName("band_1") self.verticalLayout.addWidget(self.band_1) self.band_1_label = QtWidgets.QLabel(self.centralwidget) self.band_1_label.setObjectName("band_1_label") self.verticalLayout.addWidget(self.band_1_label) self.horizontalLayout_2.addLayout(self.verticalLayout) self.verticalLayout_2 = QtWidgets.QVBoxLayout() self.verticalLayout_2.setObjectName("verticalLayout_2") self.label_2 = QtWidgets.QLabel(self.centralwidget) self.label_2.setObjectName("label_2") self.verticalLayout_2.addWidget(self.label_2) self.band_2 = QtWidgets.QSlider(self.centralwidget) self.band_2.setMaximum(8) self.band_2.setPageStep(1) self.band_2.setProperty("value", 4) self.band_2.setOrientation(QtCore.Qt.Vertical) self.band_2.setTickPosition(QtWidgets.QSlider.TicksBothSides) self.band_2.setObjectName("band_2") self.verticalLayout_2.addWidget(self.band_2) self.band_2_label = QtWidgets.QLabel(self.centralwidget) self.band_2_label.setObjectName("band_2_label") self.verticalLayout_2.addWidget(self.band_2_label) self.horizontalLayout_2.addLayout(self.verticalLayout_2) self.verticalLayout_5 = QtWidgets.QVBoxLayout() self.verticalLayout_5.setObjectName("verticalLayout_5") self.label_3 = QtWidgets.QLabel(self.centralwidget) self.label_3.setObjectName("label_3") self.verticalLayout_5.addWidget(self.label_3) self.band_3 = QtWidgets.QSlider(self.centralwidget) self.band_3.setMaximum(8) self.band_3.setPageStep(1) self.band_3.setProperty("value", 4) self.band_3.setOrientation(QtCore.Qt.Vertical) self.band_3.setTickPosition(QtWidgets.QSlider.TicksBothSides) self.band_3.setObjectName("band_3") self.verticalLayout_5.addWidget(self.band_3) self.band_3_label = QtWidgets.QLabel(self.centralwidget) self.band_3_label.setObjectName("band_3_label") self.verticalLayout_5.addWidget(self.band_3_label) self.horizontalLayout_2.addLayout(self.verticalLayout_5) self.verticalLayout_6 = QtWidgets.QVBoxLayout() self.verticalLayout_6.setObjectName("verticalLayout_6") self.label_4 = QtWidgets.QLabel(self.centralwidget) self.label_4.setObjectName("label_4") self.verticalLayout_6.addWidget(self.label_4) self.band_4 = QtWidgets.QSlider(self.centralwidget) self.band_4.setAutoFillBackground(False) self.band_4.setStyleSheet("color: rgb(0, 0, 0);") self.band_4.setMaximum(8) self.band_4.setPageStep(1) self.band_4.setProperty("value", 4) self.band_4.setOrientation(QtCore.Qt.Vertical) self.band_4.setTickPosition(QtWidgets.QSlider.TicksBothSides) self.band_4.setObjectName("band_4") self.verticalLayout_6.addWidget(self.band_4) self.band_4_label = QtWidgets.QLabel(self.centralwidget) self.band_4_label.setObjectName("band_4_label") self.verticalLayout_6.addWidget(self.band_4_label) self.horizontalLayout_2.addLayout(self.verticalLayout_6) self.verticalLayout_7 = QtWidgets.QVBoxLayout() self.verticalLayout_7.setObjectName("verticalLayout_7") self.label_5 = QtWidgets.QLabel(self.centralwidget) self.label_5.setObjectName("label_5") self.verticalLayout_7.addWidget(self.label_5) self.band_5 = QtWidgets.QSlider(self.centralwidget) self.band_5.setMaximum(8) self.band_5.setPageStep(1) self.band_5.setProperty("value", 4) self.band_5.setOrientation(QtCore.Qt.Vertical) self.band_5.setTickPosition(QtWidgets.QSlider.TicksBothSides) self.band_5.setObjectName("band_5") self.verticalLayout_7.addWidget(self.band_5) self.band_5_label = QtWidgets.QLabel(self.centralwidget) self.band_5_label.setObjectName("band_5_label") self.verticalLayout_7.addWidget(self.band_5_label) self.horizontalLayout_2.addLayout(self.verticalLayout_7) self.verticalLayout_8 = QtWidgets.QVBoxLayout() self.verticalLayout_8.setObjectName("verticalLayout_8") self.label_6 = QtWidgets.QLabel(self.centralwidget) self.label_6.setObjectName("label_6") self.verticalLayout_8.addWidget(self.label_6) self.band_6 = QtWidgets.QSlider(self.centralwidget) self.band_6.setMaximum(8) self.band_6.setPageStep(1) self.band_6.setProperty("value", 4) self.band_6.setOrientation(QtCore.Qt.Vertical) self.band_6.setTickPosition(QtWidgets.QSlider.TicksBothSides) self.band_6.setObjectName("band_6") self.verticalLayout_8.addWidget(self.band_6) self.band_6_label = QtWidgets.QLabel(self.centralwidget) self.band_6_label.setObjectName("band_6_label") self.verticalLayout_8.addWidget(self.band_6_label) self.horizontalLayout_2.addLayout(self.verticalLayout_8) self.verticalLayout_9 = QtWidgets.QVBoxLayout() self.verticalLayout_9.setObjectName("verticalLayout_9") self.label_7 = QtWidgets.QLabel(self.centralwidget) self.label_7.setObjectName("label_7") self.verticalLayout_9.addWidget(self.label_7) self.band_7 = QtWidgets.QSlider(self.centralwidget) self.band_7.setMaximum(8) self.band_7.setPageStep(1) self.band_7.setProperty("value", 4) self.band_7.setOrientation(QtCore.Qt.Vertical) self.band_7.setTickPosition(QtWidgets.QSlider.TicksBothSides) self.band_7.setObjectName("band_7") self.verticalLayout_9.addWidget(self.band_7) self.band_7_label = QtWidgets.QLabel(self.centralwidget) self.band_7_label.setObjectName("band_7_label") self.verticalLayout_9.addWidget(self.band_7_label) self.horizontalLayout_2.addLayout(self.verticalLayout_9) self.verticalLayout_10 = QtWidgets.QVBoxLayout() self.verticalLayout_10.setObjectName("verticalLayout_10") self.label_8 = QtWidgets.QLabel(self.centralwidget) self.label_8.setObjectName("label_8") self.verticalLayout_10.addWidget(self.label_8) self.band_8 = QtWidgets.QSlider(self.centralwidget) self.band_8.setMaximum(8) self.band_8.setPageStep(1) self.band_8.setProperty("value", 4) self.band_8.setOrientation(QtCore.Qt.Vertical) self.band_8.setTickPosition(QtWidgets.QSlider.TicksBothSides) self.band_8.setObjectName("band_8") self.verticalLayout_10.addWidget(self.band_8) self.band_8_label = QtWidgets.QLabel(self.centralwidget) self.band_8_label.setObjectName("band_8_label") self.verticalLayout_10.addWidget(self.band_8_label) self.horizontalLayout_2.addLayout(self.verticalLayout_10) self.verticalLayout_11 = QtWidgets.QVBoxLayout() self.verticalLayout_11.setObjectName("verticalLayout_11") self.label_9 = QtWidgets.QLabel(self.centralwidget) self.label_9.setObjectName("label_9") self.verticalLayout_11.addWidget(self.label_9) self.band_9 = QtWidgets.QSlider(self.centralwidget) self.band_9.setMaximum(8) self.band_9.setPageStep(1) self.band_9.setProperty("value", 4) self.band_9.setOrientation(QtCore.Qt.Vertical) self.band_9.setTickPosition(QtWidgets.QSlider.TicksBothSides) self.band_9.setObjectName("band_9") self.verticalLayout_11.addWidget(self.band_9) self.band_9_label = QtWidgets.QLabel(self.centralwidget) self.band_9_label.setObjectName("band_9_label") self.verticalLayout_11.addWidget(self.band_9_label) self.horizontalLayout_2.addLayout(self.verticalLayout_11) self.verticalLayout_12 = QtWidgets.QVBoxLayout() self.verticalLayout_12.setObjectName("verticalLayout_12") self.label_10 = QtWidgets.QLabel(self.centralwidget) self.label_10.setObjectName("label_10") self.verticalLayout_12.addWidget(self.label_10) self.band_10 = QtWidgets.QSlider(self.centralwidget) self.band_10.setMaximum(8) self.band_10.setPageStep(1) self.band_10.setProperty("value", 4) self.band_10.setOrientation(QtCore.Qt.Vertical) self.band_10.setTickPosition(QtWidgets.QSlider.TicksBothSides) self.band_10.setObjectName("band_10") self.verticalLayout_12.addWidget(self.band_10) self.band_10_label = QtWidgets.QLabel(self.centralwidget) self.band_10_label.setObjectName("band_10_label") self.verticalLayout_12.addWidget(self.band_10_label) self.horizontalLayout_2.addLayout(self.verticalLayout_12) self.verticalLayout_16.addLayout(self.horizontalLayout_2) self.horizontalLayout_3 = QtWidgets.QHBoxLayout() self.horizontalLayout_3.setObjectName("horizontalLayout_3") spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) self.horizontalLayout_3.addItem(spacerItem) self.verticalLayout_13 = QtWidgets.QVBoxLayout() self.verticalLayout_13.setObjectName("verticalLayout_13") self.palettes_box = QtWidgets.QComboBox(self.centralwidget) font = QtGui.QFont() font.setPointSize(10) font.setBold(True) font.setWeight(75) self.palettes_box.setFont(font) self.palettes_box.setObjectName("palettes_box") self.palettes_box.addItem("") self.palettes_box.addItem("") self.palettes_box.addItem("") self.palettes_box.addItem("") self.palettes_box.addItem("") self.verticalLayout_13.addWidget(self.palettes_box) self.pushButton = QtWidgets.QPushButton(self.centralwidget) font = QtGui.QFont() font.setPointSize(10) font.setBold(True) font.setWeight(75) self.pushButton.setFont(font) self.pushButton.setObjectName("pushButton") self.verticalLayout_13.addWidget(self.pushButton) self.horizontalLayout_3.addLayout(self.verticalLayout_13) spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) self.horizontalLayout_3.addItem(spacerItem1) self.verticalLayout_16.addLayout(self.horizontalLayout_3) MainWindow.setCentralWidget(self.centralwidget) self.menubar = QtWidgets.QMenuBar(MainWindow) self.menubar.setGeometry(QtCore.QRect(0, 0, 1022, 26)) self.menubar.setObjectName("menubar") self.menuFile = QtWidgets.QMenu(self.menubar) self.menuFile.setObjectName("menuFile") MainWindow.setMenuBar(self.menubar) self.statusbar = QtWidgets.QStatusBar(MainWindow) self.statusbar.setObjectName("statusbar") MainWindow.setStatusBar(self.statusbar) self.actionNew = QtWidgets.QAction(MainWindow) self.actionNew.setObjectName("actionNew") self.actionExit = QtWidgets.QAction(MainWindow) self.actionExit.setObjectName("actionExit") self.actionOpen = QtWidgets.QAction(MainWindow) self.actionOpen.setObjectName("actionOpen") self.actionSave = QtWidgets.QAction(MainWindow) self.actionSave.setObjectName("actionSave") self.menuFile.addAction(self.actionNew) self.menuFile.addAction(self.actionOpen) self.menuFile.addAction(self.actionSave) self.menuFile.addAction(self.actionExit) self.menubar.addAction(self.menuFile.menuAction()) self.retranslateUi(MainWindow) self.playback_speed_before.setCurrentIndex(2) self.playback_speed_after.setCurrentIndex(2) QtCore.QMetaObject.connectSlotsByName(MainWindow)
def initialize(self): """ This method will initialize the Main Window, create all the widgets and what not :return: """ # ---------------- session filename options ------------------------------------------ filename_grid_layout = QtWidgets.QGridLayout() filename_label = QtWidgets.QLabel("Filename:") self.filename = QtWidgets.QLineEdit() self.filename.setText(default_filename) self.filename.textChanged.connect(self.filename_changed) self.filename.setToolTip( 'The name of the session that you will analyze in gebaSpike!') self.choose_filename_btn = QtWidgets.QPushButton("Choose Filename") self.choose_filename_btn.setToolTip( 'This button will allow you to choose the filename to analyze!') self.choose_filename_btn.clicked.connect(self.choose_filename) filename_grid_layout.addWidget(self.choose_filename_btn, *(0, 0)) filename_grid_layout.addWidget(filename_label, *(0, 1), QtCore.Qt.AlignRight) # ------------------- cut filename options --------------------------------- cut_filename_label = QtWidgets.QLabel("Cut Filename:") self.cut_filename = QtWidgets.QLineEdit() self.cut_filename.setText(default_filename) self.cut_filename.setToolTip( 'The name of the cut file containing the sorted values!') self.choose_cut_filename_btn = QtWidgets.QPushButton( "Choose Cut Filename") self.choose_cut_filename_btn.setToolTip( 'This button will allow you to choose a cut file to use!') self.choose_cut_filename_btn.clicked.connect(self.choose_cut_filename) line_edit_layout = QtWidgets.QVBoxLayout() line_edit_layout.addWidget(self.filename) line_edit_layout.addWidget(self.cut_filename) filename_grid_layout.addWidget(self.choose_cut_filename_btn, *(1, 0)) filename_grid_layout.addWidget(cut_filename_label, *(1, 1), QtCore.Qt.AlignRight) filename_grid_layout.addLayout(line_edit_layout, *(0, 2), 2, 1) # ----------- max_spike_label = QtWidgets.QLabel("Max Plot Spikes:") self.max_spike_plots_text = QtWidgets.QLineEdit() self.max_spike_plots_text.setToolTip( "This is the maximum number of spikes to plot.") self.max_spike_plots_text.setText(str(max_spike_plots)) self.max_spike_plots_text.textChanged.connect( lambda: maxSpikesChange(self, 'main')) max_spikes_layout = QtWidgets.QHBoxLayout() max_spikes_layout.addWidget(max_spike_label) max_spikes_layout.addWidget(self.max_spike_plots_text) # ------- move invalid ----------- move_to_channel_label = QtWidgets.QLabel("Move to Cell:") self.move_to_channel = QtWidgets.QLineEdit() self.move_to_channel.setToolTip( "This is the channel that you will move selected cells too.") self.move_to_channel.setText(default_move_channel) self.move_to_channel.textChanged.connect( lambda: moveToChannel(self, 'main')) move_to_channel_layout = QtWidgets.QHBoxLayout() move_to_channel_layout.addWidget(move_to_channel_label) move_to_channel_layout.addWidget(self.move_to_channel) # -------- spike parameter options ------------------------------------- feature_options = ["None"] + list(feature_name_map.keys()) spike_parameter_layout = QtWidgets.QHBoxLayout() x_axis_label = QtWidgets.QLabel("X-Axis") self.x_axis_cb = QtWidgets.QComboBox() for option in feature_options: self.x_axis_cb.addItem(option) self.x_axis_cb.setCurrentIndex(self.x_axis_cb.findText(defaultXAxis)) self.x_axis_cb.setToolTip("Choose a feature to plot on the X-Axis") x_axis_layout = QtWidgets.QHBoxLayout() x_axis_layout.addWidget(x_axis_label) x_axis_layout.addWidget(self.x_axis_cb) y_axis_label = QtWidgets.QLabel("Y-Axis") self.y_axis_cb = QtWidgets.QComboBox() self.y_axis_cb.setToolTip("Choose a feature to plot on the Y-Axis") for option in feature_options: self.y_axis_cb.addItem(option) self.y_axis_cb.setCurrentIndex(self.y_axis_cb.findText(defaultYAxis)) y_axis_layout = QtWidgets.QHBoxLayout() y_axis_layout.addWidget(y_axis_label) y_axis_layout.addWidget(self.y_axis_cb) z_axis_label = QtWidgets.QLabel("Z-Axis") self.z_axis_cb = QtWidgets.QComboBox() self.z_axis_cb.setToolTip("Choose a feature to plot on the Z-Axis") for option in feature_options: self.z_axis_cb.addItem(option) self.z_axis_cb.setCurrentIndex(self.z_axis_cb.findText(defaultZAxis)) z_axis_layout = QtWidgets.QHBoxLayout() z_axis_layout.addWidget(z_axis_label) z_axis_layout.addWidget(self.z_axis_cb) axis_layout = QtWidgets.QHBoxLayout() axis_layout.addLayout(x_axis_layout) axis_layout.addLayout(y_axis_layout) axis_layout.addLayout(z_axis_layout) tetrode_layout = QtWidgets.QHBoxLayout() tetrode_label = QtWidgets.QLabel("Tetrode:") self.tetrode_cb = QtWidgets.QComboBox() self.tetrode_cb.currentIndexChanged.connect(self.tetrode_changed) tetrode_layout.addWidget(tetrode_label) tetrode_layout.addWidget(self.tetrode_cb) spike_parameter_widgets = [ tetrode_layout, axis_layout, move_to_channel_layout, max_spikes_layout ] spike_parameter_layout.addStretch(1) for i, widget in enumerate(spike_parameter_widgets): if 'Layout' in widget.__str__(): spike_parameter_layout.addLayout(widget) spike_parameter_layout.addStretch(1) else: spike_parameter_layout.addWidget(widget, 0, QtCore.Qt.AlignCenter) spike_parameter_layout.addStretch(1) if openGL: self.feature_win = pg.GraphicsWindow() feature_win_layout = QtWidgets.QGridLayout() self.feature_win.setLayout(feature_win_layout) self.glViewWidget = gl.GLViewWidget() self.glViewWidget.setBackgroundColor('k') feature_win_layout.addWidget(self.glViewWidget) else: self.feature_win = MatplotlibWidget() self.feature_win.toolbar.hide() # hide the toolbar self.unit_win = pg.GraphicsWindow() plot_layout = QtWidgets.QHBoxLayout() for _object in [self.feature_win, self.unit_win]: plot_layout.addWidget(_object) # ------------------------------------ version information ------------------------------------------------- vers_label = QtWidgets.QLabel(f"gebaSpike V{version}") # --------- Create the Buttons at the bottom of the Main Window ------------- # button_layout = QtWidgets.QHBoxLayout() self.plot_btn = QtWidgets.QPushButton("Plot") self.plot_btn.clicked.connect(self.plotFunc) self.save_btn = QtWidgets.QPushButton("Save Cut") self.save_btn.clicked.connect(self.save_function) self.save_btn.setToolTip('Save to the current cut file') self.undo_btn = QtWidgets.QPushButton("Undo") self.undo_btn.clicked.connect(lambda: undo_function(self)) self.undo_btn.setToolTip('Click to undo previous action!') self.quit_btn = QtWidgets.QPushButton("Quit") self.quit_btn.clicked.connect(self.close_app) self.quit_btn.setShortcut( "Ctrl+Q") # creates shortcut for the quit button self.quit_btn.setToolTip('Click to quit gebaSpike!') button_order = [ self.plot_btn, self.save_btn, self.undo_btn, self.quit_btn ] for btn in button_order: button_layout.addWidget(btn) main_window_layout = QtWidgets.QVBoxLayout() layout_order = [ filename_grid_layout, spike_parameter_layout, plot_layout, button_layout, vers_label ] # do you want to add stretch to the widgets/layouts within the layout order? add_Stretch = [False, False, False, False, False] # do you want to center the widgets/layouts within the layout order? align_center = [True, True, True, True, False] # ---------------- add all the layouts and widgets to the Main Window's layout ------------ # # main_window_layout.addStretch(1) # adds the widgets/layouts according to the order for widget, addStretch, alignCenter in zip(layout_order, add_Stretch, align_center): if 'Layout' in widget.__str__(): main_window_layout.addLayout(widget) if addStretch: main_window_layout.addStretch(1) else: if alignCenter: main_window_layout.addWidget(widget, 0, QtCore.Qt.AlignCenter) else: main_window_layout.addWidget(widget, 0) if addStretch: main_window_layout.addStretch(1) self.setLayout( main_window_layout) # defining the layout of the Main Window self.show() # shows the window
def __setup_layout(self): """ Sets up default layout of ExperimentView """ ''' Set-up QMainWindow layout ''' layout = QGridLayout() # Create Grid Layout # QMainWindow requires central widget # Created blank QWidget, and set layout to GridLayout outer_layout = QGridLayout() widget = QWidget() widget.setLayout(outer_layout) self.setCentralWidget(widget) ''' Set-up Widgets ''' # -- Graph -- # self.matplot_widget = MatplotlibWidget() # -- Graph Options -- # self.graph_options_widget = MainGraphOptionsWidget() self.graph_toolbox = GraphToolBoxDock() # -- Molecule Selection Widget -- # self.selection_widget = MoleculeSelectionWidget(self.experiment) # -- Validated Selection Widget --# self.validated_selection_widget = MoleculeSelectionWidget( self.experiment) # -- Invalidated Selection Widget --# self.invalidated_selection_widget = MoleculeSelectionWidget( self.experiment) # -- Experiment Info Widget -- # self.info_widget = ExperimentInfoWidget(self.experiment) # -- Buttons -- # self.main_menu_btn = QPushButton( ) # Main Menu (exits, returns to main menu) # -- Table -- # self.table_widget = QTableWidget( ) # Table Widget (molecule assignment and peaks) self.populate_table_widget() # -- Splatalogue Widget -- # self.splatalogue_dock_widget = SplatalogueDockWidget(self.experiment) ''' Create Inner Layouts / Containers ''' # ------------------------------------------------------------------ # # Create Docked Tool Box Widget # ------------------------------------------------------------------ # # --- 1st Tab: Graph options # --- 2nd Tab : Peak List # Create Tool Box # tool_box = QToolBox() # #text = QString("Graph Options") # text = QString("Experiment Info") # #self.table_widget.setSizePolicy(QSizePolicy.Maximum, QSizePolicy.Maximum) # #tool_box.addItem(self.info_widget, text) # # #tool_box.addItem(self.graph_options_widget, text) # tool_box.setSizePolicy(QSizePolicy.Maximum, QSizePolicy.Maximum) # text = QString("Peak List") # #tool_box.addItem(self.table_widget, text) # Dock the tool box # dock_tools = QDockWidget(self.window()) # dock_tools.setSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.MinimumExpanding) # dock_tools.setFeatures(QDockWidget.DockWidgetClosable | # QDockWidget.DockWidgetMovable | # QDockWidget.DockWidgetFloatable | # QDockWidget.DockWidgetVerticalTitleBar) # ------------------------------------------------------------------ # # Molecule Selection Widgets in Tabs (Pending, Validated, Invalidated) # ------------------------------------------------------------------ # # --- 1st tab: Pending # --- 2nd tab: Validated # --- 3rd tab: Invalidated # 1st Container (pending) pending_scroll_selection_container = QScrollArea() pending_scroll_selection_container.setWidget(self.selection_widget) pending_scroll_selection_container.setSizePolicy( QSizePolicy.Minimum, QSizePolicy.Expanding) pending_scroll_selection_container.setFrameShadow(QFrame.Raised) # 2nd Container (validated) validated_scroll_selection_container = QScrollArea() validated_scroll_selection_container.setWidget( self.validated_selection_widget) validated_scroll_selection_container.setSizePolicy( QSizePolicy.Minimum, QSizePolicy.Expanding) validated_scroll_selection_container.setFrameShadow(QFrame.Raised) # 2nd Container (validated) invalidated_scroll_selection_container = QScrollArea() invalidated_scroll_selection_container.setWidget( self.invalidated_selection_widget) invalidated_scroll_selection_container.setSizePolicy( QSizePolicy.Minimum, QSizePolicy.Expanding) invalidated_scroll_selection_container.setFrameShadow(QFrame.Raised) # Create Tab Widget selection_tab_widget = QTabWidget() selection_tab_widget.addTab(pending_scroll_selection_container, "Pending") selection_tab_widget.addTab(validated_scroll_selection_container, "Validated") selection_tab_widget.addTab(invalidated_scroll_selection_container, "Invalidated") selection_tab_widget.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Expanding) self.selection_tab_widget = selection_tab_widget # self.selection_tab_widget.setAutoFillBackground(True) # self.selection_tab_widget.setStyleSheet("background-color: #353535") self.selection_tab_widget.tabBar().setAutoFillBackground(True) # self.selection_tab_widget.tabBar().setStyleSheet("color:white; background") # tab color fix (windows) self.selection_tab_widget.setStyleSheet( 'QTabBar::tab {background-color: #333333; font-size: 12px;' 'border: 2px solid #262626; border-style: outset;} ' 'QTabBar {background-color: #262626;}') # Save self.pending_scroll_selection_container = pending_scroll_selection_container self.validated_scroll_selection_container = validated_scroll_selection_container self.invalidated_scroll_selection_container = invalidated_scroll_selection_container ''' Dock Widgets ''' self.table_toolbox = QDockWidget() self.table_toolbox.setWidget(self.table_widget) # dock_tools.setWidget(tool_box) self.info_toolbox = QDockWidget() self.info_toolbox.setWidget(self.info_widget) self.info_toolbox.setSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.MinimumExpanding) ''' Add widgets to Layout ''' hlayout = QHBoxLayout() v1 = QVBoxLayout() v3 = QVBoxLayout() v2 = QVBoxLayout() #v3.addWidget(self.info_widget) #v3.addWidget(self.table_widget) v1.addWidget(selection_tab_widget) v2.addWidget(self.matplot_widget) hlayout.addLayout(v3) hlayout.addLayout(v1) hlayout.addLayout(v2) outer_layout.addLayout(hlayout, 0, 0) self.window().addDockWidget(Qt.LeftDockWidgetArea, self.info_toolbox) self.window().addDockWidget(Qt.LeftDockWidgetArea, self.table_toolbox) self.window().addDockWidget(Qt.RightDockWidgetArea, self.graph_toolbox) self.window().addDockWidget(Qt.RightDockWidgetArea, self.splatalogue_dock_widget) self.graph_toolbox.hide() self.splatalogue_dock_widget.hide() self.table_widget.setMaximumWidth(450) ''' Toolbar and ShortCuts ''' self.__setup_toolbar_and_shortcuts() ''' Button Connections ''' self.graph_options_widget.deselect_all_btn.clicked.connect( self.deselect_all) self.graph_options_widget.redisplay_btn.clicked.connect( self.redisplay_graph) self.graph_options_widget.select_all_btn.clicked.connect( self.select_all) self.graph_options_widget.show_validations_btn.clicked.connect( self.toggle_validations_on_graph) self.graph_toolbox.ui.reset_btn.clicked.connect(self.reset_options) self.graph_toolbox.ui.graph_btn.clicked.connect(self.redisplay_graph)