def initUI(self): self.layout = qw.QFormLayout(self) self.layout.setFormAlignment(Qt.AlignRight) self.layout.setLabelAlignment(Qt.AlignLeft) self.layout.setFieldGrowthPolicy(qw.QFormLayout.AllNonFixedFieldsGrow) url_label = qw.QLabel("URL:") self.url_input = qw.QLineEdit() tab_policies = qw.QGroupBox("Open URL In...") self.policy_group = qw.QButtonGroup() tab_policies.setFlat(True) vbox = qw.QVBoxLayout(tab_policies) same_window = qw.QRadioButton("Existing Window") new_window = qw.QRadioButton("New Window") new_tab = qw.QRadioButton("New Tab") self.policy_group.addButton(same_window, id=0) self.policy_group.addButton(new_window, id=1) self.policy_group.addButton(new_tab, id=2) new_tab.setChecked(True) vbox.addWidget(new_tab) vbox.addWidget(new_window) vbox.addWidget(same_window) url_label.setSizePolicy(qw.QSizePolicy.Minimum, qw.QSizePolicy.Expanding) self.url_input.setSizePolicy(qw.QSizePolicy.Minimum, qw.QSizePolicy.Expanding) self.layout.addRow(url_label, self.url_input) self.layout.addRow(tab_policies)
def createThirdExclusiveGroup(self): self.groupBox_FPNc = QtWidgets.QGroupBox("FPNc:") self.groupBox_FPNc.setCheckable(True) self.groupBox_FPNc.setChecked(False) self.FPN_mode_group = QtWidgets.QButtonGroup() self.radio_wFPN_mode = QtWidgets.QRadioButton("Wavelet FPNc") self.radio_mFPN_mode = QtWidgets.QRadioButton("Median FPNc") self.radio_cpFPN_mode = QtWidgets.QRadioButton( "Column projection FPNc") self.radio_fft_FPN_mode = QtWidgets.QRadioButton("FFT2D FPNc") self.FPN_mode_group.addButton(self.radio_wFPN_mode) self.FPN_mode_group.addButton(self.radio_mFPN_mode) self.FPN_mode_group.addButton(self.radio_cpFPN_mode) self.FPN_mode_group.addButton(self.radio_fft_FPN_mode) self.radio_wFPN_mode.toggled.connect(self.axis_selection) self.radio_mFPN_mode.toggled.connect(self.axis_selection) self.radio_cpFPN_mode.toggled.connect(self.axis_selection) self.radio_fft_FPN_mode.toggled.connect(self.axis_selection) self.axis_group = QtWidgets.QButtonGroup() self.radio_axis_1 = QtWidgets.QRadioButton("FPNc in axis 0") self.radio_axis_2 = QtWidgets.QRadioButton("FPNc in axis 1") self.radio_axis_3 = QtWidgets.QRadioButton("FPNc in Both axis") self.radio_axis_2.setChecked(True) self.radio_mFPN_mode.setChecked(True) self.axis_group.addButton(self.radio_axis_1) self.axis_group.addButton(self.radio_axis_2) self.axis_group.addButton(self.radio_axis_3) grid = QtWidgets.QGridLayout() grid.addWidget(self.radio_mFPN_mode, 1, 0) grid.addWidget(self.radio_cpFPN_mode, 2, 0) grid.addWidget(self.radio_wFPN_mode, 3, 0) grid.addWidget(self.radio_fft_FPN_mode, 4, 0) grid.addWidget(self.radio_axis_1, 1, 1) grid.addWidget(self.radio_axis_2, 2, 1) grid.addWidget(self.radio_axis_3, 3, 1) self.groupBox_FPNc.setLayout(grid) return self.groupBox_FPNc
def createFirstExclusiveGroup(self): self.groupBox_FPNc = QtWidgets.QGroupBox("FPNc:") self.groupBox_FPNc.setCheckable(True) self.groupBox_FPNc.setChecked(False) self.FPN_mode_group = QtWidgets.QButtonGroup() self.radio_wFPN_mode = QtWidgets.QRadioButton("Wavelet FPNc") self.radio_cpFPN_mode = QtWidgets.QRadioButton( "Column_projection FPNc") self.radio_wf_FPN_mode = QtWidgets.QRadioButton("Wavelet_FFT2D FPNc") self.radio_cpFPN_mode.setChecked(True) self.FPN_mode_group.addButton(self.radio_wFPN_mode) self.FPN_mode_group.addButton(self.radio_cpFPN_mode) self.FPN_mode_group.addButton(self.radio_wf_FPN_mode) self.axis_group = QtWidgets.QButtonGroup() self.radio_axis_1 = QtWidgets.QRadioButton("FPNc in axis 0") self.radio_axis_2 = QtWidgets.QRadioButton("FPNc in axis 1") self.radio_axis_3 = QtWidgets.QRadioButton("FPNc in Both axis") self.radio_axis_2.setChecked(True) self.axis_group.addButton(self.radio_axis_1) self.axis_group.addButton(self.radio_axis_2) self.axis_group.addButton(self.radio_axis_3) grid = QtWidgets.QGridLayout() grid.addWidget(self.radio_cpFPN_mode, 0, 0) grid.addWidget(self.radio_wFPN_mode, 0, 1) grid.addWidget(self.radio_wf_FPN_mode, 0, 2) grid.addWidget(self.radio_axis_1, 1, 0) grid.addWidget(self.radio_axis_2, 1, 1) grid.addWidget(self.radio_axis_3, 1, 2) self.groupBox_FPNc.setLayout(grid) return self.groupBox_FPNc
def __init__(self, name="", parent=None): super().__init__(name, parent) self.setOrientation(QtCore.Qt.Vertical) # -------- Buttons ----------------- self.btn_group = QtWidgets.QButtonGroup() self.btn_home = self.add_button( "Home", lambda x: self.btn_action(self.btn_home.text())) self.btn_agreements = self.add_button( "Agreements", lambda x: self.btn_action(self.btn_agreements.text())) self.btn_people = self.add_button( "People", lambda x: self.btn_action(self.btn_people.text())) self.btn_projects = self.add_button( "Projects", lambda x: self.btn_action(self.btn_projects.text())) # self.btn_stuff = self.add_button("Stuff", # lambda x: self.btn_action(self.btn_stuff.text())) self.btn_contracts = self.add_button( "Contracts", lambda x: self.btn_action(self.btn_contracts.text())) #--------------------------------- self.addWidget(self.btn_home) self.addWidget(self.btn_agreements) self.addWidget(self.btn_people) self.addWidget(self.btn_projects) # self.addWidget(self.btn_stuff) self.addWidget(self.btn_contracts) self.addSeparator() self.setAutoFillBackground(True) self.setToolButtonStyle(QtCore.Qt.ToolButtonIconOnly) self.btn_group.buttonClicked.connect(self.btn_grp_click) self.set_visibility()
def init_modes(self): layout = QtWidgets.QGridLayout() qscale_group_box = QtWidgets.QGroupBox() qscale_group_box.setStyleSheet( "QGroupBox{padding-top:5px; margin-top:-18px}") qscale_box_layout = QtWidgets.QHBoxLayout() self.widgets.mode = QtWidgets.QButtonGroup() self.widgets.mode.buttonClicked.connect(self.set_mode) qscale_radio = QtWidgets.QRadioButton("qscale") qscale_radio.setChecked(True) qscale_radio.setFixedWidth(80) self.widgets.mode.addButton(qscale_radio) self.widgets.qscale = QtWidgets.QComboBox() self.widgets.qscale.setFixedWidth(250) self.widgets.qscale.addItems([str(x) for x in range(0, 101, 5)] + ["Custom"]) self.widgets.qscale.setCurrentIndex(15) self.widgets.qscale.currentIndexChanged.connect( lambda: self.mode_update()) self.widgets.custom_qscale = QtWidgets.QLineEdit("75") self.widgets.custom_qscale.setFixedWidth(100) self.widgets.custom_qscale.setDisabled(True) self.widgets.custom_qscale.setValidator(self.only_int) self.widgets.custom_qscale.textChanged.connect( lambda: self.main.build_commands()) qscale_box_layout.addWidget(qscale_radio) qscale_box_layout.addWidget(self.widgets.qscale) qscale_box_layout.addStretch() qscale_box_layout.addWidget(QtWidgets.QLabel("Custom:")) qscale_box_layout.addWidget(self.widgets.custom_qscale) qscale_group_box.setLayout(qscale_box_layout) layout.addWidget(qscale_group_box, 0, 0) return layout
def _init_options(self): """""" variations = ["ΠΠ°ΡΠΌΠΎΠ½ΡΡΠ½ΠΈΠΉ ΡΠΈΠ³Π½Π°Π»", "ΠΠ°Π½ΡΠ΅ΡΡΠ΅ΡΡΡΠΊΠΈΠΉ ΠΊΠΎΠ΄"] button_group = qtw.QButtonGroup() radio_layout = qtw.QHBoxLayout() for index, radio in enumerate(variations): radio_button = qtw.QRadioButton(radio) radio_button.clicked.connect( lambda a=True, i=index: self.__type_changed(i)) radio_layout.addWidget(radio_button) button_group.addButton(radio_button) if index == self.values["type"]: radio_button.setChecked(True) self.options.append([radio_layout]) amplitude = qtw.QDoubleSpinBox() amplitude.setValue(self.values["amplitude"]) amplitude.setRange(0.01, 10) amplitude.valueChanged.connect( lambda a: self.values.update({"amplitude": a})) self.options.append(["ΠΠΌΠΏΠ»ΡΡΡΠ΄Π° (Π)", amplitude]) self.__init_form_analog() self.__init_form_discrete() self.options.append([self.inner_form_a]) self.options.append([self.inner_form_b]) if self.values["type"] == 1: self.inner_form_a.hide() else: self.inner_form_b.hide() bytes = qtw.QLineEdit() bytes.setText(self.values["bytes"]) bytes.setInputMask("bbbbbbbb") bytes.textChanged.connect(lambda a: self.values.update({"bytes": a})) self.options.append(["Π‘ΠΈΠΌΠ²ΠΎΠ»ΠΈ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ", bytes])
def layout_based_on_select_bg(self): if self.combo_bg_filter.currentText( ) == "Differential rolling average": while self.flag_remove_box: self.remove_widgets() self.flag_remove_box = True self.groupBatchSize = QtWidgets.QGroupBox("Batch size:") self.le_batchSize = QtWidgets.QLineEdit() self.le_batchSize.setPlaceholderText('radius') self.le_batchSize_label = QtWidgets.QLabel("Batch size (frames):") self.le_batchSize.setFixedWidth(50) self.groupBox_PN = QtWidgets.QGroupBox( "Laser Power normalization:") self.groupBox_PN.setCheckable(True) self.groupBox_PN.setChecked(False) self.start_win_size_x = QtWidgets.QLineEdit() self.start_win_size_x.setPlaceholderText('ROI X start') self.start_win_size_x_label = QtWidgets.QLabel( "start width pixel:") self.end_win_size_x = QtWidgets.QLineEdit() self.end_win_size_x.setPlaceholderText('ROI X end') self.end_win_size_x_label = QtWidgets.QLabel("end width pixel:") self.start_win_size_y = QtWidgets.QLineEdit() self.start_win_size_y.setPlaceholderText('ROI Y start') self.start_win_size_y_label = QtWidgets.QLabel( "start hight pixel:") self.end_win_size_y = QtWidgets.QLineEdit() self.end_win_size_y.setPlaceholderText('ROI X end') self.end_win_size_y_label = QtWidgets.QLabel("start hight pixel:") self.selected_frame = QtWidgets.QLineEdit() self.selected_frame.setPlaceholderText('selected frame') self.selected_frame_label = QtWidgets.QLabel( "selected preview frame:") self.selected_frame.setText('0') self.preview_roi = QtWidgets.QPushButton("ROI preview") self.preview_roi.setAutoDefault(False) self.preview_roi.clicked.connect(self.preview_roi_plot) self.preview_roi.setFixedHeight(20) self.preview_roi.setFixedWidth(100) grid_pn = QtWidgets.QGridLayout() grid_pn.addWidget(self.start_win_size_x_label, 0, 0) grid_pn.addWidget(self.start_win_size_x, 0, 1) grid_pn.addWidget(self.end_win_size_x_label, 0, 2) grid_pn.addWidget(self.end_win_size_x, 0, 3) grid_pn.addWidget(self.start_win_size_y_label, 1, 0) grid_pn.addWidget(self.start_win_size_y, 1, 1) grid_pn.addWidget(self.end_win_size_y_label, 1, 2) grid_pn.addWidget(self.end_win_size_y, 1, 3) grid_pn.addWidget(self.selected_frame_label, 2, 0) grid_pn.addWidget(self.selected_frame, 2, 1) grid_pn.addWidget(self.preview_roi, 2, 2) self.groupBox_PN.setLayout(grid_pn) grid_batch = QtWidgets.QGridLayout() grid_batch.addWidget(self.le_batchSize_label, 0, 0) grid_batch.addWidget(self.le_batchSize, 0, 1) self.groupBatchSize.setLayout(grid_batch) self.groupBox_FPNc = QtWidgets.QGroupBox("FPNc:") self.groupBox_FPNc.setCheckable(True) self.groupBox_FPNc.setChecked(False) self.FPN_mode_group = QtWidgets.QButtonGroup() self.radio_wFPN_mode = QtWidgets.QRadioButton("Wavelet FPNc") self.radio_cpFPN_mode = QtWidgets.QRadioButton( "Column_projection FPNc") self.radio_median_FPN_mode = QtWidgets.QRadioButton("Median FPNc") self.radio_FFT2D_FPN_mode = QtWidgets.QRadioButton("FFT2D FPNc") self.FPN_mode_group.addButton(self.radio_wFPN_mode) self.FPN_mode_group.addButton(self.radio_cpFPN_mode) self.FPN_mode_group.addButton(self.radio_FFT2D_FPN_mode) self.FPN_mode_group.addButton(self.radio_median_FPN_mode) self.radio_wFPN_mode.toggled.connect(self.axis_selection) self.radio_cpFPN_mode.toggled.connect(self.axis_selection) self.radio_FFT2D_FPN_mode.toggled.connect(self.axis_selection) self.radio_median_FPN_mode.toggled.connect(self.axis_selection) self.axis_group = QtWidgets.QButtonGroup() self.radio_axis_1 = QtWidgets.QRadioButton("FPNc in axis 0") self.radio_axis_2 = QtWidgets.QRadioButton("FPNc in axis 1") self.radio_axis_3 = QtWidgets.QRadioButton("FPNc in Both axis") self.radio_axis_2.setChecked(True) self.radio_cpFPN_mode.setChecked(True) self.axis_group.addButton(self.radio_axis_1) self.axis_group.addButton(self.radio_axis_2) self.axis_group.addButton(self.radio_axis_3) grid = QtWidgets.QGridLayout() grid.addWidget(self.radio_cpFPN_mode, 0, 0) grid.addWidget(self.radio_median_FPN_mode, 1, 0) grid.addWidget(self.radio_wFPN_mode, 2, 0) grid.addWidget(self.radio_FFT2D_FPN_mode, 3, 0) grid.addWidget(self.radio_axis_1, 0, 1) grid.addWidget(self.radio_axis_2, 1, 1) # grid.addWidget(self.radio_axis_3, 2, 1) self.groupBox_FPNc.setLayout(grid) self.grid1.addWidget(self.groupBatchSize, 1, 0) self.grid1.addWidget(self.groupBox_PN, 2, 0) self.grid1.addWidget(self.groupBox_FPNc, 3, 0) elif self.combo_bg_filter.currentText() == "Spatial median Filter": while self.flag_remove_box: self.remove_widgets() self.flag_remove_box = True self.line_edit1 = QtWidgets.QLineEdit(self) self.line_edit1_label = QtWidgets.QLabel("Neighborhood size (px):") self.line_edit1.setFixedWidth(50) self.grid1.addWidget(self.line_edit1_label, 2, 0) self.grid1.addWidget(self.line_edit1, 2, 1) elif self.combo_bg_filter.currentText() == "Spatial gaussian Filter": while self.flag_remove_box: self.remove_widgets() self.flag_remove_box = True self.line_edit2 = QtWidgets.QLineEdit(self) self.line_edit2_label = QtWidgets.QLabel("Sigma (px):") self.line_edit2.setFixedWidth(50) self.grid1.addWidget(self.line_edit2_label, 2, 0) self.grid1.addWidget(self.line_edit2, 2, 1) elif self.combo_bg_filter.currentText( ) == "Background correction temporal median": while self.flag_remove_box: self.remove_widgets() self.flag_remove_box = True elif self.combo_bg_filter.currentText( ) == "Flat field (Gaussian filter)": while self.flag_remove_box: self.remove_widgets() self.flag_remove_box = True self.line_edit5 = QtWidgets.QLineEdit(self) self.line_edit5_label = QtWidgets.QLabel("Sigma (px):") self.line_edit5.setFixedWidth(50) self.grid1.addWidget(self.line_edit5_label, 2, 0) self.grid1.addWidget(self.line_edit5, 2, 1) elif self.combo_bg_filter.currentText( ) == "Flat field (mean background subtraction)": while self.flag_remove_box: self.remove_widgets() self.flag_remove_box = True self.btn_read_file = QtWidgets.QPushButton("load") self.btn_read_file.setAutoDefault(False) self.btn_read_file.clicked.connect(self.load_video) self.btn_read_file.setFixedHeight(20) self.btn_read_file.setFixedWidth(50) self.grid1.addWidget(self.btn_read_file, 1, 0)
def create_rvt_como_values(self): self.le_1 = QtWidgets.QLineEdit() self.le_1.setPlaceholderText("Min radius") self.le_1_label = QtWidgets.QLabel("Min radius (px): ") self.le_2 = QtWidgets.QLineEdit() self.le_2.setPlaceholderText("Max radius") self.le_2_label = QtWidgets.QLabel("Max radius (px): ") self.le_3 = QtWidgets.QLineEdit() self.le_3.setPlaceholderText("highpass_size") self.le_3_label = QtWidgets.QLabel("Highpass_size: ") self.le_4 = QtWidgets.QLineEdit() self.le_4.setPlaceholderText("upsample") self.le_4_label = QtWidgets.QLabel("Upsample: ") self.le_5 = QtWidgets.QLineEdit() self.le_5.setPlaceholderText("rweights") self.le_5_label = QtWidgets.QLabel("rweights: ") self.le_6 = QtWidgets.QLineEdit() self.le_6.setPlaceholderText("coarse_factor") self.le_6_label = QtWidgets.QLabel("Coarse_factor: ") self.le_7 = QtWidgets.QLineEdit() self.le_7.setPlaceholderText("Threshold") self.le_7_label = QtWidgets.QLabel("Threshold: ") self.pad_mode_group = QtWidgets.QButtonGroup() self.radio_pad_mode_constant = QtWidgets.QRadioButton("Pad mode (constant)") self.radio_pad_mode_reflect = QtWidgets.QRadioButton("Pad mode (reflect)") self.radio_pad_mode_edge = QtWidgets.QRadioButton("Pad mode (edge)") self.radio_pad_mode_fast = QtWidgets.QRadioButton("Pad mode (fast)") self.pad_mode_group.addButton(self.radio_pad_mode_constant) self.pad_mode_group.addButton(self.radio_pad_mode_reflect) self.pad_mode_group.addButton(self.radio_pad_mode_edge) self.pad_mode_group.addButton(self.radio_pad_mode_fast) self.radio_pad_mode_constant.setChecked(True) self.coarse_mode_group = QtWidgets.QButtonGroup() self.radio_coarse_mode_add = QtWidgets.QRadioButton("Coarse mode (add)") self.radio_coarse_mode_skip = QtWidgets.QRadioButton("Coarse mode (skip)") self.coarse_mode_group.addButton(self.radio_coarse_mode_add) self.coarse_mode_group.addButton(self.radio_coarse_mode_skip) self.radio_coarse_mode_add.setChecked(True) self.kind_group = QtWidgets.QButtonGroup() self.radio_kind_basic = QtWidgets.QRadioButton("Kind (basic)") self.radio_kind_normalized = QtWidgets.QRadioButton("Kind (normalized)") self.kind_group.addButton(self.radio_kind_basic) self.kind_group.addButton(self.radio_kind_normalized) self.radio_kind_basic.setChecked(True) self.grid_Localization.addWidget(self.le_1_label, 1, 0) self.grid_Localization.addWidget(self.le_2_label, 2, 0) self.grid_Localization.addWidget(self.le_3_label, 3, 0) self.grid_Localization.addWidget(self.le_4_label, 1, 2) self.grid_Localization.addWidget(self.le_5_label, 2, 2) self.grid_Localization.addWidget(self.le_6_label, 3, 2) self.grid_Localization.addWidget(self.le_7_label, 5, 2) self.grid_Localization.addWidget(self.le_1, 1, 1) self.grid_Localization.addWidget(self.le_2, 2, 1) self.grid_Localization.addWidget(self.le_3, 3, 1) self.grid_Localization.addWidget(self.le_4, 1, 3) self.grid_Localization.addWidget(self.le_5, 2, 3) self.grid_Localization.addWidget(self.le_6, 3, 3) self.grid_Localization.addWidget(self.le_7, 5, 3) self.grid_Localization.addWidget(self.radio_pad_mode_constant, 4, 0) self.grid_Localization.addWidget(self.radio_pad_mode_reflect, 4, 1) self.grid_Localization.addWidget(self.radio_pad_mode_edge, 4, 2) self.grid_Localization.addWidget(self.radio_pad_mode_fast, 4, 3) self.grid_Localization.addWidget(self.radio_coarse_mode_add, 5, 0) self.grid_Localization.addWidget(self.radio_coarse_mode_skip, 5, 1) self.grid_Localization.addWidget(self.radio_kind_basic, 6, 0) self.grid_Localization.addWidget(self.radio_kind_normalized, 6, 1)
def __init__(self, parent=None): super(Histogram_GUI, self).__init__(parent) self.input_data = None self.lower_limit = None self.upper_limit = None self.max_n_components = None self.minPeak_width = None self.n_bins = None self.empty_value_box_flag = False self.step_limit = 1e-6 self.setting_tracking = {} self.resize(300, 300) self.setWindowTitle('Histogram') self.plot_hist = QtWidgets.QPushButton("plot_histogram") self.plot_hist.clicked.connect(self.do_hist) self.plot_hist.setFixedWidth(150) self.le_lower_contrast_trim = QtWidgets.QLineEdit() self.le_lower_contrast_trim.setPlaceholderText("lower_limitation") self.le_lower_contrast_trim_label = QtWidgets.QLabel( "lower limitation (Contrast):") self.le_lower_contrast_trim.setFixedWidth(150) self.le_upper_contrast_trim = QtWidgets.QLineEdit() self.le_upper_contrast_trim.setPlaceholderText("upper_limitation") self.le_upper_contrast_trim_label = QtWidgets.QLabel( "upper limitation (Contrast):") self.le_upper_contrast_trim.setFixedWidth(150) self.le_MaxGMM_mode = QtWidgets.QLineEdit() self.le_MaxGMM_mode.setPlaceholderText("max_n_components for GMM") self.le_MaxGMM_mode_label = QtWidgets.QLabel("max n_components:") self.le_MaxGMM_mode.setFixedWidth(150) self.le_hist_bin = QtWidgets.QLineEdit() self.le_hist_bin.setPlaceholderText("#bins") self.le_hist_bin_label = QtWidgets.QLabel("Histogram bins:") self.le_hist_bin.setFixedWidth(150) self.min_peak_width = QtWidgets.QLineEdit() self.min_peak_width.setPlaceholderText("Min Peak Width") self.min_peak_width_label = QtWidgets.QLabel("Min Peak Width:") self.min_peak_width.setFixedWidth(150) self.axis_limit = QtWidgets.QLineEdit() self.axis_limit.setPlaceholderText("scale * upper_limitation") self.le_axis_limit = QtWidgets.QLabel("Scale x-axis:") self.axis_limit.setFixedWidth(150) self.GMM_visualization_mode_group = QtWidgets.QButtonGroup() self.radio_mode_1 = QtWidgets.QRadioButton("Separate mixture") self.radio_mode_2 = QtWidgets.QRadioButton("Superposition mixture") self.GMM_visualization_mode_group.addButton(self.radio_mode_1) self.GMM_visualization_mode_group.addButton(self.radio_mode_2) self.grid = QtWidgets.QGridLayout() self.grid.addWidget(self.createFirstExclusiveGroup(), 0, 0) self.grid.addWidget(self.createSecondExclusiveGroup(), 1, 0) self.grid.addWidget(self.plot_hist, 2, 0) self.setLayout(self.grid)
def setupUi(self, MainWindow): self.cwd = os.getcwd() MainWindow.setObjectName("MainWindow") MainWindow.resize(800, 700) self.centralwidget = QtWidgets.QWidget(MainWindow) self.centralwidget.setObjectName("centralwidget") # 1 self.verticalLayoutWidget = QtWidgets.QWidget(self.centralwidget) self.verticalLayoutWidget.setGeometry(QtCore.QRect(130, 120, 471, 241)) self.verticalLayoutWidget.setObjectName("verticalLayoutWidget") self.verticalLayout = QtWidgets.QVBoxLayout(self.verticalLayoutWidget) self.verticalLayout.setContentsMargins(0, 0, 0, 0) self.verticalLayout.setObjectName("verticalLayout") self.scrollArea = QtWidgets.QScrollArea(self.verticalLayoutWidget) self.scrollArea.setWidgetResizable(True) self.scrollArea.setObjectName("scrollArea") self.scrollAreaWidgetContents = QtWidgets.QWidget() self.scrollAreaWidgetContents.setGeometry(QtCore.QRect(0, 0, 467, 237)) self.scrollAreaWidgetContents.setObjectName("scrollAreaWidgetContents") self.treeWidget = QtWidgets.QTreeWidget(self.scrollAreaWidgetContents) self.treeWidget.setGeometry(QtCore.QRect(0, 0, 471, 231)) self.treeWidget.setObjectName("treeWidget") self.treeWidget.headerItem().setText(0, "1") self.scrollArea.setWidget(self.scrollAreaWidgetContents) self.verticalLayout.addWidget(self.scrollArea) self.label = QtWidgets.QLabel(self.centralwidget) self.label.setGeometry(QtCore.QRect(150, 60, 469, 26)) font = QtGui.QFont() font.setFamily("Segoe Print Bold") font.setPointSize(22) font.setBold(False) font.setItalic(False) font.setUnderline(False) font.setWeight(PySide6.QtGui.QFont.Weight(75)) self.label.setFont(font) self.label.setAlignment(QtCore.Qt.AlignCenter) self.label.setObjectName("label") # subtitle self.label_sub = QtWidgets.QLabel(self.centralwidget) self.label_sub.setGeometry(QtCore.QRect(60, 80, 449, 46)) font = QtGui.QFont() font.setFamily("Segoe Print") font.setPointSize(12) font.setBold(True) font.setItalic(True) font.setUnderline(True) font.setWeight(PySide6.QtGui.QFont.Weight(75)) self.label_sub.setFont(font) self.label_sub.setAlignment(QtCore.Qt.AlignCenter) self.label_sub.setObjectName("label_sub") # 2 self.widget = QtWidgets.QWidget(self.centralwidget) self.widget.setGeometry(QtCore.QRect(280, 382, 208, 64)) self.widget.setObjectName("widget") self.gridLayout = QtWidgets.QGridLayout(self.widget) self.gridLayout.setContentsMargins(0, 0, 0, 0) self.gridLayout.setObjectName("gridLayout") self.label_2 = QtWidgets.QLabel(self.widget) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.label_2.sizePolicy().hasHeightForWidth()) self.label_2.setSizePolicy(sizePolicy) self.label_2.setMinimumSize(QtCore.QSize(24, 0)) self.label_2.setObjectName("label_2") self.gridLayout.addWidget(self.label_2, 0, 0, 1, 1) self.lineEdit = QtWidgets.QLineEdit(self.widget) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.lineEdit.sizePolicy().hasHeightForWidth()) self.lineEdit.setSizePolicy(sizePolicy) self.lineEdit.setMinimumSize(QtCore.QSize(24, 0)) self.lineEdit.setText("") self.lineEdit.setObjectName("lineEdit") self.gridLayout.addWidget(self.lineEdit, 0, 1, 1, 1) self.label_3 = QtWidgets.QLabel(self.widget) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.label_3.sizePolicy().hasHeightForWidth()) self.label_3.setSizePolicy(sizePolicy) self.label_3.setMinimumSize(QtCore.QSize(24, 0)) self.label_3.setObjectName("label_3") self.gridLayout.addWidget(self.label_3, 1, 0, 1, 1) self.pushButton = QtWidgets.QPushButton(self.widget) self.pushButton.setObjectName("pushButton") self.gridLayout.addWidget(self.pushButton, 1, 1, 1, 1) # private key # self.gridLayout_2 = QtWidgets.QGridLayout(self.widget) # self.gridLayout_2.setContentsMargins(0, 0, 0, 0) # self.gridLayout_2.setObjectName("gridLayout_2") # self.label_4 = QtWidgets.QLabel(self.widget) # sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) # sizePolicy.setHorizontalStretch(0) # sizePolicy.setVerticalStretch(0) # sizePolicy.setHeightForWidth(self.label_4.sizePolicy().hasHeightForWidth()) # self.label_4.setSizePolicy(sizePolicy) # self.label_4.setMinimumSize(QtCore.QSize(24, 0)) # self.label_4.setObjectName("label_4") # self.gridLayout_2.addWidget(self.label_4, 0, 0, 1, 1) # self.pushButton_2 = QtWidgets.QPushButton(self.widget) # self.pushButton_2.setObjectName("pushButton_2") # self.gridLayout_2.addWidget(self.pushButton_2, 1, 1, 1, 1) # add self.widget = QtWidgets.QWidget(self.centralwidget) self.widget.setGeometry(QtCore.QRect(280, 450, 208, 210)) # self.widget.setGeometry(QtCore.QRect(280, 450, 208, 64)) self.widget.setObjectName("widget") self.verticalLayout = QtWidgets.QVBoxLayout(self.widget) self.verticalLayout.setContentsMargins(0, 0, 0, 0) self.verticalLayout.setObjectName("verticalLayout") # # empty line # self.emptyhorizontalLayout1 = QtWidgets.QHBoxLayout() # self.emptyhorizontalLayout1.setObjectName("horizontalLayout5") # emptyline1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) # self.emptyhorizontalLayout1.addItem(emptyline1) # self.verticalLayout.addLayout(self.emptyhorizontalLayout1) # Platform: self.horizontalLayout1 = QtWidgets.QHBoxLayout() self.horizontalLayout1.setObjectName("horizontalLayout1") spacerItemplatformLeft = QtWidgets.QSpacerItem( 40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) self.label_platform = QtWidgets.QLabel(self.widget) self.label_platform.setObjectName("label_platform") spacerItemplatformRight = QtWidgets.QSpacerItem( 40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) self.horizontalLayout1.addItem(spacerItemplatformLeft) self.horizontalLayout1.addWidget(self.label_platform) self.horizontalLayout1.addItem(spacerItemplatformRight) self.verticalLayout.addLayout(self.horizontalLayout1) # self.horizontalLayout2 = QtWidgets.QHBoxLayout() self.horizontalLayout2.setObjectName("horizontalLayout2") self.radioButton_2 = QtWidgets.QRadioButton(self.widget) self.radioButton_2.setObjectName("radioButton_2") self.horizontalLayout2.addWidget(self.radioButton_2) spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) self.horizontalLayout2.addItem(spacerItem) self.radioButton = QtWidgets.QRadioButton(self.widget) self.radioButton.setObjectName("radioButton") self.horizontalLayout2.addWidget(self.radioButton) spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) self.horizontalLayout2.addItem(spacerItem1) self.radioButton_3 = QtWidgets.QRadioButton(self.widget) self.radioButton_3.setObjectName("radioButton_3") self.horizontalLayout2.addWidget(self.radioButton_3) self.verticalLayout.addLayout(self.horizontalLayout2) # # empty line # self.emptyhorizontalLayout2 = QtWidgets.QHBoxLayout() # self.emptyhorizontalLayout2.setObjectName("horizontalLayout5") # emptyline2 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) # self.emptyhorizontalLayout2.addItem(emptyline2) # self.verticalLayout.addLayout(self.emptyhorizontalLayout2) # Connection self.horizontalLayout3 = QtWidgets.QHBoxLayout() self.horizontalLayout3.setObjectName("horizontalLayout3") spacerItemVMConnectionLeft = QtWidgets.QSpacerItem( 40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) self.label_Connection = QtWidgets.QLabel(self.widget) self.label_Connection.setObjectName("label_Connection") spacerItemVMConnectionRight = QtWidgets.QSpacerItem( 40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) self.horizontalLayout3.addItem(spacerItemVMConnectionLeft) self.horizontalLayout3.addWidget(self.label_Connection) self.horizontalLayout3.addItem(spacerItemVMConnectionRight) self.verticalLayout.addLayout(self.horizontalLayout3) # self.horizontalLayout4 = QtWidgets.QHBoxLayout() self.horizontalLayout4.setObjectName("horizontalLayout4") self.radioButton_4 = QtWidgets.QRadioButton(self.widget) self.radioButton_4.setObjectName("radioButton_4") self.horizontalLayout4.addWidget(self.radioButton_4) spacerItem2 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) self.horizontalLayout4.addItem(spacerItem2) self.radioButton_5 = QtWidgets.QRadioButton(self.widget) self.radioButton_5.setObjectName("radioButton_5") self.horizontalLayout4.addWidget(self.radioButton_5) # spacerItem3 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) # self.horizontalLayout4.addItem(spacerItem3) # self.radioButton_6 = QtWidgets.QRadioButton(self.widget) # self.radioButton_6.setObjectName("radioButton_6") # self.horizontalLayout4.addWidget(self.radioButton_6) self.verticalLayout.addLayout(self.horizontalLayout4) # Ready go! # self.horizontalLayout5 = QtWidgets.QHBoxLayout() # self.horizontalLayout5.setObjectName("horizontalLayout5") # spacerItemVMConnectionLeft = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, # QtWidgets.QSizePolicy.Minimum) # self.label_go = QtWidgets.QLabel(self.widget) # self.label_go.setObjectName("label_go") # spacerItemVMConnectionRight = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, # QtWidgets.QSizePolicy.Minimum) # self.horizontalLayout5.addItem(spacerItemVMConnectionLeft) # self.horizontalLayout5.addWidget(self.label_Connection) # self.horizontalLayout5.addItem(spacerItemVMConnectionRight) # self.verticalLayout.addLayout(self.horizontalLayout5) # 4 buttons grid # self.gridLayout_3 = QtWidgets.QGridLayout(self.widget) # self.gridLayout_3.setContentsMargins(0, 0, 0, 0) # self.gridLayout_3.setObjectName("gridLayout_3") # # self.pushButton_6 = QtWidgets.QPushButton(self.widget) # self.pushButton_6.setSizePolicy(sizePolicy) # self.pushButton_6.setMinimumSize(QtCore.QSize(24, 0)) # self.pushButton_6.setObjectName("pushButton_6") # sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) # sizePolicy.setHorizontalStretch(0) # sizePolicy.setVerticalStretch(0) # sizePolicy.setHeightForWidth(self.pushButton_6.sizePolicy().hasHeightForWidth()) # self.gridLayout_3.addWidget(self.pushButton_6, 0, 0, 1, 1) # # self.pushButton_7 = QtWidgets.QPushButton(self.widget) # self.pushButton_7.setSizePolicy(sizePolicy) # self.pushButton_7.setMinimumSize(QtCore.QSize(24, 0)) # self.pushButton_7.setObjectName("pushButton_7") # sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) # sizePolicy.setHorizontalStretch(0) # sizePolicy.setVerticalStretch(0) # sizePolicy.setHeightForWidth(self.pushButton_7.sizePolicy().hasHeightForWidth()) # self.gridLayout_3.addWidget(self.pushButton_7, 0, 1, 1, 1) # # self.pushButton_8 = QtWidgets.QPushButton(self.widget) # self.pushButton_8.setSizePolicy(sizePolicy) # self.pushButton_8.setMinimumSize(QtCore.QSize(24, 0)) # self.pushButton_8.setObjectName("pushButton_7") # sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) # sizePolicy.setHorizontalStretch(0) # sizePolicy.setVerticalStretch(0) # sizePolicy.setHeightForWidth(self.pushButton_8.sizePolicy().hasHeightForWidth()) # self.gridLayout_3.addWidget(self.pushButton_8, 1, 0, 1, 1) # # self.pushButton_9 = QtWidgets.QPushButton(self.widget) # self.pushButton_9.setSizePolicy(sizePolicy) # self.pushButton_9.setMinimumSize(QtCore.QSize(24, 0)) # self.pushButton_9.setObjectName("pushButton_7") # sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) # sizePolicy.setHorizontalStretch(0) # sizePolicy.setVerticalStretch(0) # sizePolicy.setHeightForWidth(self.pushButton_9.sizePolicy().hasHeightForWidth()) # self.gridLayout_3.addWidget(self.pushButton_9, 1, 1, 1, 1) # Confirm & Tutorial buttons self.horizontalLayout6 = QtWidgets.QHBoxLayout() self.horizontalLayout6.setObjectName("horizontalLayout6") self.pushButton_6 = QtWidgets.QPushButton(self.widget) self.pushButton_6.setObjectName("pushButton_6") self.horizontalLayout6.addWidget(self.pushButton_6) # spacerItem2 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) # self.horizontalLayout6.addItem(spacerItem2) self.pushButton_7 = QtWidgets.QPushButton(self.widget) self.pushButton_7.setObjectName("pushButton_7") self.horizontalLayout6.addWidget(self.pushButton_7) self.verticalLayout.addLayout(self.horizontalLayout6) # Reset & RunScript buttons self.horizontalLayout7 = QtWidgets.QHBoxLayout() self.horizontalLayout7.setObjectName("horizontalLayout7") self.pushButton_8 = QtWidgets.QPushButton(self.widget) self.pushButton_8.setObjectName("pushButton_8") self.horizontalLayout7.addWidget(self.pushButton_8) # spacerItem2 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) # self.horizontalLayout7.addItem(spacerItem2) self.pushButton_9 = QtWidgets.QPushButton(self.widget) self.pushButton_9.setObjectName("pushButton_9") self.horizontalLayout7.addWidget(self.pushButton_9) self.verticalLayout.addLayout(self.horizontalLayout7) # # empty line # self.emptyhorizontalLayout3 = QtWidgets.QHBoxLayout() # self.emptyhorizontalLayout3.setObjectName("horizontalLayout5") # emptyline3 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) # self.emptyhorizontalLayout3.addItem(emptyline3) # self.verticalLayout.addLayout(self.emptyhorizontalLayout3) # Node Connection # self.horizontalLayout5 = QtWidgets.QHBoxLayout() # self.horizontalLayout5.setObjectName("horizontalLayout5") # spacerItemNodeConnectionLeft = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, # QtWidgets.QSizePolicy.Minimum) # self.label_Node_Connection = QtWidgets.QLabel(self.widget) # self.label_Node_Connection.setObjectName("label_Node_Connection") # spacerItemNodeConnectionRight = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, # QtWidgets.QSizePolicy.Minimum) # self.horizontalLayout5.addItem(spacerItemNodeConnectionLeft) # self.horizontalLayout5.addWidget(self.label_Node_Connection) # self.horizontalLayout5.addItem(spacerItemNodeConnectionRight) # self.verticalLayout.addLayout(self.horizontalLayout5) # # # # self.horizontalLayout6 = QtWidgets.QHBoxLayout() # self.horizontalLayout6.setObjectName("horizontalLayout6") # self.radioButton_6 = QtWidgets.QRadioButton(self.widget) # self.radioButton_6.setObjectName("radioButton_2") # self.horizontalLayout6.addWidget(self.radioButton_6) # spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) # self.horizontalLayout6.addItem(spacerItem) # spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) # self.horizontalLayout6.addItem(spacerItem1) # self.radioButton_7 = QtWidgets.QRadioButton(self.widget) # self.radioButton_7.setObjectName("radioButton_7") # self.horizontalLayout6.addWidget(self.radioButton_7) # self.verticalLayout.addLayout(self.horizontalLayout6) self.bg1 = QtWidgets.QButtonGroup() self.bg1.addButton(self.radioButton, 1) self.bg1.addButton(self.radioButton_2, 2) self.bg1.addButton(self.radioButton_3, 3) self.bg2 = QtWidgets.QButtonGroup() self.bg2.addButton(self.radioButton_4, 4) self.bg2.addButton(self.radioButton_5, 5) # self.bg2.addButton(self.radioButton_6, 6) # self.bg3 = QtWidgets.QButtonGroup() # self.bg3.addButton(self.radioButton_6, 6) # self.bg3.addButton(self.radioButton_7, 7) # 3 MainWindow.setCentralWidget(self.centralwidget) self.menubar = QtWidgets.QMenuBar(MainWindow) self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 22)) self.menubar.setObjectName("menubar") MainWindow.setMenuBar(self.menubar) self.statusbar = QtWidgets.QStatusBar(MainWindow) self.statusbar.setObjectName("statusbar") MainWindow.setStatusBar(self.statusbar) self.retranslateUi(MainWindow) QtCore.QObject.connect( self.treeWidget, QtCore.SIGNAL("itemDoubleClicked(QTreeWidgetItem*,int)"), MainWindow.doubleclick) QtCore.QObject.connect( self.treeWidget, QtCore.SIGNAL("itemClicked(QTreeWidgetItem*,int)"), MainWindow.click) self.pushButton.clicked.connect(lambda: MainWindow.openFile(self.cwd)) self.pushButton_6.clicked.connect(lambda: MainWindow.confirm(self.cwd)) self.pushButton_7.clicked.connect( lambda: MainWindow.tutorial(self.cwd)) self.pushButton_8.clicked.connect(lambda: MainWindow.reset(self.cwd)) self.pushButton_9.clicked.connect( lambda: MainWindow.runscript(self.cwd)) QtCore.QMetaObject.connectSlotsByName(MainWindow) self.bg1.buttonClicked.connect(MainWindow.platform_Connection_Clicked) self.bg2.buttonClicked.connect(MainWindow.platform_Connection_Clicked)
def _add_modes( self, recommended_bitrates, recommended_qps, qp_name="crf", add_qp=True, ): self.recommended_bitrates = recommended_bitrates self.recommended_qps = recommended_qps self.qp_name = qp_name layout = QtWidgets.QGridLayout() qp_group_box = QtWidgets.QGroupBox() qp_group_box.setStyleSheet(group_box_style()) qp_box_layout = QtWidgets.QHBoxLayout() bitrate_group_box = QtWidgets.QGroupBox() bitrate_group_box.setStyleSheet(group_box_style()) bitrate_box_layout = QtWidgets.QHBoxLayout() self.widgets.mode = QtWidgets.QButtonGroup() self.widgets.mode.buttonClicked.connect(self.set_mode) self.bitrate_radio = QtWidgets.QRadioButton("Bitrate") self.bitrate_radio.setFixedWidth(80) self.widgets.mode.addButton(self.bitrate_radio) self.widgets.bitrate = QtWidgets.QComboBox() self.widgets.bitrate.setFixedWidth(250) self.widgets.bitrate.addItems(recommended_bitrates) config_opt = self.app.fastflix.config.encoder_opt( self.profile_name, "bitrate") custom_bitrate = False try: default_bitrate_index = self.determine_default( "bitrate", config_opt, recommended_bitrates, raise_error=True) except FastFlixInternalException: custom_bitrate = True self.widgets.bitrate.setCurrentText("Custom") else: self.widgets.bitrate.setCurrentIndex(default_bitrate_index) self.widgets.bitrate.currentIndexChanged.connect( lambda: self.mode_update()) self.widgets.custom_bitrate = QtWidgets.QLineEdit( "3000" if not custom_bitrate else config_opt) self.widgets.custom_bitrate.setFixedWidth(100) self.widgets.custom_bitrate.setEnabled(custom_bitrate) self.widgets.custom_bitrate.textChanged.connect( lambda: self.main.build_commands()) self.widgets.custom_bitrate.setValidator(self.only_int) bitrate_box_layout.addWidget(self.bitrate_radio) bitrate_box_layout.addWidget(self.widgets.bitrate) bitrate_box_layout.addStretch() bitrate_box_layout.addWidget(QtWidgets.QLabel("Custom:")) bitrate_box_layout.addWidget(self.widgets.custom_bitrate) bitrate_box_layout.addWidget(QtWidgets.QLabel("k")) qp_help = ( f"{qp_name.upper()} {t('is extremely source dependant')},\n" f"{t('the resolution-to-')}{qp_name.upper()}{t('are mere suggestions!')}" ) self.qp_radio = QtWidgets.QRadioButton(qp_name.upper()) self.qp_radio.setChecked(True) self.qp_radio.setFixedWidth(80) self.qp_radio.setToolTip(qp_help) self.widgets.mode.addButton(self.qp_radio) self.widgets[qp_name] = QtWidgets.QComboBox() self.widgets[qp_name].setToolTip(qp_help) self.widgets[qp_name].setFixedWidth(250) self.widgets[qp_name].addItems(recommended_qps) custom_qp = False qp_value = self.app.fastflix.config.encoder_opt( self.profile_name, qp_name) try: default_qp_index = self.determine_default(qp_name, qp_value, recommended_qps, raise_error=True) except FastFlixInternalException: custom_qp = True self.widgets[qp_name].setCurrentText("Custom") else: if default_qp_index is not None: self.widgets[qp_name].setCurrentIndex(default_qp_index) self.widgets[qp_name].currentIndexChanged.connect( lambda: self.mode_update()) self.widgets[f"custom_{qp_name}"] = QtWidgets.QLineEdit( "30" if not custom_qp else str(qp_value)) self.widgets[f"custom_{qp_name}"].setFixedWidth(100) self.widgets[f"custom_{qp_name}"].setEnabled(custom_qp) self.widgets[f"custom_{qp_name}"].setValidator(self.only_float) self.widgets[f"custom_{qp_name}"].textChanged.connect( lambda: self.main.build_commands()) if config_opt: self.mode = "Bitrate" self.qp_radio.setChecked(False) self.bitrate_radio.setChecked(True) qp_box_layout.addWidget(self.qp_radio) qp_box_layout.addWidget(self.widgets[qp_name]) qp_box_layout.addStretch() qp_box_layout.addWidget(QtWidgets.QLabel("Custom:")) qp_box_layout.addWidget(self.widgets[f"custom_{qp_name}"]) qp_box_layout.addWidget(QtWidgets.QLabel(" ")) bitrate_group_box.setLayout(bitrate_box_layout) qp_group_box.setLayout(qp_box_layout) layout.addWidget(qp_group_box, 0, 0) layout.addWidget(bitrate_group_box, 1, 0) if not add_qp: qp_group_box.hide() return layout
def createToolbars(self): self.editToolBar = self.addToolBar("Edit") self.editToolBar.addAction(self.deleteAction) self.editToolBar.addAction(self.toFrontAction) self.editToolBar.addAction(self.sendBackAction) self.fontCombo = QtWidgets.QFontComboBox() self.fontCombo.currentFontChanged.connect(self.currentFontChanged) self.fontSizeCombo = QtWidgets.QComboBox() self.fontSizeCombo.setEditable(True) for i in range(8, 30, 2): self.fontSizeCombo.addItem(str(i)) validator = QtGui.QIntValidator(2, 64, self) self.fontSizeCombo.setValidator(validator) self.fontSizeCombo.currentIndexChanged.connect(self.fontSizeChanged) self.fontColorToolButton = QtWidgets.QToolButton() self.fontColorToolButton.setPopupMode( QtWidgets.QToolButton.MenuButtonPopup) self.fontColorToolButton.setMenu( self.createColorMenu(self.textColorChanged, QtCore.Qt.black)) self.textAction = self.fontColorToolButton.menu().defaultAction() self.fontColorToolButton.setIcon( self.createColorToolButtonIcon(':/images/textpointer.png', QtCore.Qt.black)) self.fontColorToolButton.setAutoFillBackground(True) self.fontColorToolButton.clicked.connect(self.textButtonTriggered) self.fillColorToolButton = QtWidgets.QToolButton() self.fillColorToolButton.setPopupMode( QtWidgets.QToolButton.MenuButtonPopup) self.fillColorToolButton.setMenu( self.createColorMenu(self.itemColorChanged, QtCore.Qt.white)) self.fillAction = self.fillColorToolButton.menu().defaultAction() self.fillColorToolButton.setIcon( self.createColorToolButtonIcon(':/images/floodfill.png', QtCore.Qt.white)) self.fillColorToolButton.clicked.connect(self.fillButtonTriggered) self.lineColorToolButton = QtWidgets.QToolButton() self.lineColorToolButton.setPopupMode( QtWidgets.QToolButton.MenuButtonPopup) self.lineColorToolButton.setMenu( self.createColorMenu(self.lineColorChanged, QtCore.Qt.black)) self.lineAction = self.lineColorToolButton.menu().defaultAction() self.lineColorToolButton.setIcon( self.createColorToolButtonIcon(':/images/linecolor.png', QtCore.Qt.black)) self.lineColorToolButton.clicked.connect(self.lineButtonTriggered) self.textToolBar = self.addToolBar("Font") self.textToolBar.addWidget(self.fontCombo) self.textToolBar.addWidget(self.fontSizeCombo) self.textToolBar.addAction(self.boldAction) self.textToolBar.addAction(self.italicAction) self.textToolBar.addAction(self.underlineAction) self.colorToolBar = self.addToolBar("Color") self.colorToolBar.addWidget(self.fontColorToolButton) self.colorToolBar.addWidget(self.fillColorToolButton) self.colorToolBar.addWidget(self.lineColorToolButton) pointerButton = QtWidgets.QToolButton() pointerButton.setCheckable(True) pointerButton.setChecked(True) pointerButton.setIcon(QtGui.QIcon(':/images/pointer.png')) linePointerButton = QtWidgets.QToolButton() linePointerButton.setCheckable(True) linePointerButton.setIcon(QtGui.QIcon(':/images/linepointer.png')) self.pointerTypeGroup = QtWidgets.QButtonGroup() self.pointerTypeGroup.addButton(pointerButton, DiagramScene.MoveItem) self.pointerTypeGroup.addButton(linePointerButton, DiagramScene.InsertLine) self.pointerTypeGroup.idClicked.connect(self.pointerGroupClicked) self.sceneScaleCombo = QtWidgets.QComboBox() self.sceneScaleCombo.addItems(["50%", "75%", "100%", "125%", "150%"]) self.sceneScaleCombo.setCurrentIndex(2) self.sceneScaleCombo.currentTextChanged.connect(self.sceneScaleChanged) self.pointerToolbar = self.addToolBar("Pointer type") self.pointerToolbar.addWidget(pointerButton) self.pointerToolbar.addWidget(linePointerButton) self.pointerToolbar.addWidget(self.sceneScaleCombo)
def createToolBox(self): self.buttonGroup = QtWidgets.QButtonGroup() self.buttonGroup.setExclusive(False) self.buttonGroup.idClicked.connect(self.buttonGroupClicked) layout = QtWidgets.QGridLayout() layout.addWidget( self.createCellWidget("Conditional", DiagramItem.Conditional), 0, 0) layout.addWidget(self.createCellWidget("Process", DiagramItem.Step), 0, 1) layout.addWidget(self.createCellWidget("Input/Output", DiagramItem.Io), 1, 0) textButton = QtWidgets.QToolButton() textButton.setCheckable(True) self.buttonGroup.addButton(textButton, self.InsertTextButton) textButton.setIcon( QtGui.QIcon( QtGui.QPixmap(':/images/textpointer.png').scaled(30, 30))) textButton.setIconSize(QtCore.QSize(50, 50)) textLayout = QtWidgets.QGridLayout() textLayout.addWidget(textButton, 0, 0, QtCore.Qt.AlignHCenter) textLayout.addWidget(QtWidgets.QLabel("Text"), 1, 0, QtCore.Qt.AlignCenter) textWidget = QtWidgets.QWidget() textWidget.setLayout(textLayout) layout.addWidget(textWidget, 1, 1) layout.setRowStretch(3, 10) layout.setColumnStretch(2, 10) itemWidget = QtWidgets.QWidget() itemWidget.setLayout(layout) self.backgroundButtonGroup = QtWidgets.QButtonGroup() self.backgroundButtonGroup.buttonClicked.connect( self.backgroundButtonGroupClicked) backgroundLayout = QtWidgets.QGridLayout() backgroundLayout.addWidget( self.createBackgroundCellWidget("Blue Grid", ':/images/background1.png'), 0, 0) backgroundLayout.addWidget( self.createBackgroundCellWidget("White Grid", ':/images/background2.png'), 0, 1) backgroundLayout.addWidget( self.createBackgroundCellWidget("Gray Grid", ':/images/background3.png'), 1, 0) backgroundLayout.addWidget( self.createBackgroundCellWidget("No Grid", ':/images/background4.png'), 1, 1) backgroundLayout.setRowStretch(2, 10) backgroundLayout.setColumnStretch(2, 10) backgroundWidget = QtWidgets.QWidget() backgroundWidget.setLayout(backgroundLayout) self.toolBox = QtWidgets.QToolBox() self.toolBox.setSizePolicy( QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Ignored)) self.toolBox.setMinimumWidth(itemWidget.sizeHint().width()) self.toolBox.addItem(itemWidget, "Basic Flowchart Shapes") self.toolBox.addItem(backgroundWidget, "Backgrounds")
def layout_based_on_select_bg(self): if self.combo_bg_filter.currentText( ) == "Differential rolling average": while self.flag_remove_box: self.remove_widgets() self.flag_remove_box = True self.groupBatchSize = QtWidgets.QGroupBox("Batch size:") self.le_batchSize = QtWidgets.QLineEdit() self.le_batchSize.setPlaceholderText('radius') self.le_batchSize_label = QtWidgets.QLabel("Batch size (frames):") self.le_batchSize.setFixedWidth(50) self.checkbox_power_normalization = QtWidgets.QCheckBox( "Laser power normalization", self) self.checkbox_hotPixels = QtWidgets.QCheckBox( "Hot pixels correction", self) grid_batch = QtWidgets.QGridLayout() grid_batch.addWidget(self.le_batchSize_label, 0, 0) grid_batch.addWidget(self.le_batchSize, 0, 1) grid_batch.addWidget(self.checkbox_power_normalization, 1, 0) grid_batch.addWidget(self.checkbox_hotPixels, 2, 0) self.groupBatchSize.setLayout(grid_batch) self.groupBox_FPNc = QtWidgets.QGroupBox("FPNc:") self.groupBox_FPNc.setCheckable(True) self.groupBox_FPNc.setChecked(False) self.FPN_mode_group = QtWidgets.QButtonGroup() self.radio_wFPN_mode = QtWidgets.QRadioButton("Wavelet FPNc") self.radio_cpFPN_mode = QtWidgets.QRadioButton( "Column_projection FPNc") self.radio_median_FPN_mode = QtWidgets.QRadioButton("Median FPNc") self.radio_FFT2D_FPN_mode = QtWidgets.QRadioButton("FFT2D FPNc") self.FPN_mode_group.addButton(self.radio_wFPN_mode) self.FPN_mode_group.addButton(self.radio_cpFPN_mode) self.FPN_mode_group.addButton(self.radio_FFT2D_FPN_mode) self.FPN_mode_group.addButton(self.radio_median_FPN_mode) self.radio_wFPN_mode.toggled.connect(self.axis_selection) self.radio_cpFPN_mode.toggled.connect(self.axis_selection) self.radio_FFT2D_FPN_mode.toggled.connect(self.axis_selection) self.radio_median_FPN_mode.toggled.connect(self.axis_selection) self.axis_group = QtWidgets.QButtonGroup() self.radio_axis_1 = QtWidgets.QRadioButton("FPNc in axis 0") self.radio_axis_2 = QtWidgets.QRadioButton("FPNc in axis 1") self.radio_axis_3 = QtWidgets.QRadioButton("FPNc in Both axis") self.radio_axis_2.setChecked(True) self.radio_cpFPN_mode.setChecked(True) self.axis_group.addButton(self.radio_axis_1) self.axis_group.addButton(self.radio_axis_2) self.axis_group.addButton(self.radio_axis_3) grid = QtWidgets.QGridLayout() grid.addWidget(self.radio_cpFPN_mode, 0, 0) grid.addWidget(self.radio_median_FPN_mode, 1, 0) grid.addWidget(self.radio_wFPN_mode, 2, 0) grid.addWidget(self.radio_FFT2D_FPN_mode, 3, 0) grid.addWidget(self.radio_axis_1, 0, 1) grid.addWidget(self.radio_axis_2, 1, 1) grid.addWidget(self.radio_axis_3, 2, 1) self.groupBox_FPNc.setLayout(grid) self.grid1.addWidget(self.groupBatchSize, 1, 0) self.grid1.addWidget(self.groupBox_FPNc, 2, 0) elif self.combo_bg_filter.currentText() == "Spatial median Filter": while self.flag_remove_box: self.remove_widgets() self.flag_remove_box = True self.line_edit1 = QtWidgets.QLineEdit(self) self.line_edit1_label = QtWidgets.QLabel("Neighborhood size (px):") self.line_edit1.setFixedWidth(50) self.grid1.addWidget(self.line_edit1_label, 2, 0) self.grid1.addWidget(self.line_edit1, 2, 1) elif self.combo_bg_filter.currentText() == "Spatial gaussian Filter": while self.flag_remove_box: self.remove_widgets() self.flag_remove_box = True self.line_edit2 = QtWidgets.QLineEdit(self) self.line_edit2_label = QtWidgets.QLabel("Sigma (px):") self.line_edit2.setFixedWidth(50) self.grid1.addWidget(self.line_edit2_label, 2, 0) self.grid1.addWidget(self.line_edit2, 2, 1) elif self.combo_bg_filter.currentText( ) == "Background correction temporal median": while self.flag_remove_box: self.remove_widgets() self.flag_remove_box = True elif self.combo_bg_filter.currentText( ) == "Flat field (Gaussian filter)": while self.flag_remove_box: self.remove_widgets() self.flag_remove_box = True self.line_edit5 = QtWidgets.QLineEdit(self) self.line_edit5_label = QtWidgets.QLabel("Sigma (px):") self.line_edit5.setFixedWidth(50) self.grid1.addWidget(self.line_edit5_label, 2, 0) self.grid1.addWidget(self.line_edit5, 2, 1) elif self.combo_bg_filter.currentText( ) == "Flat field (mean background subtraction)": while self.flag_remove_box: self.remove_widgets() self.flag_remove_box = True self.btn_read_file = QtWidgets.QPushButton("load") self.btn_read_file.setAutoDefault(False) self.btn_read_file.clicked.connect(self.load_video) self.btn_read_file.setFixedHeight(20) self.btn_read_file.setFixedWidth(50) self.grid1.addWidget(self.btn_read_file, 1, 0)