Example #1
0
    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)
Example #2
0
    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
Example #3
0
    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
Example #4
0
    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
Example #6
0
    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])
Example #7
0
    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)
Example #8
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)
Example #9
0
    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)
Example #10
0
    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)
Example #11
0
    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
Example #12
0
    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)
Example #13
0
    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")
Example #14
0
    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)