Exemple #1
0
    def __init__(self, parent=None, item=None):
        super().__init__(parent)
        self.setWindowModality(Qt.WindowModal)
        self.setWindowTitle(self.tr("Edit…"))

        nameLabel = QLabel(self.tr("Name:"), self)
        self.nameEdit = QLineEdit(self)
        self.nameEdit.setFocus(Qt.OtherFocusReason)

        validator = QDoubleValidator(self)
        validator.setLocale(QLocale.c())
        xLabel = QLabel(self.tr("X:"), self)
        self.xEdit = QLineEdit(self)
        self.xEdit.setValidator(validator)
        yLabel = QLabel(self.tr("Y:"), self)
        self.yEdit = QLineEdit(self)
        self.yEdit.setValidator(validator)

        buttonBox = QDialogButtonBox(QDialogButtonBox.Ok
                                     | QDialogButtonBox.Cancel)
        buttonBox.accepted.connect(self.accept)
        buttonBox.rejected.connect(self.reject)

        layout = QGridLayout(self)
        line = 0
        layout.addWidget(nameLabel, line, 0)
        layout.addWidget(self.nameEdit, line, 1, 1, 3)
        line += 1
        layout.addWidget(xLabel, line, 0)
        layout.addWidget(self.xEdit, line, 1)
        layout.addWidget(yLabel, line, 2)
        layout.addWidget(self.yEdit, line, 3)
        line += 1
        layout.addWidget(buttonBox, line, 3)
        self.setLayout(layout)
Exemple #2
0
    def initUI(self):
        # initialize widgets and layouts
        cenWidget = QWidget(self)
        vertLayout = QVBoxLayout(cenWidget)
        gridWidget = QWidget()
        gridLayout = QGridLayout(gridWidget)
        gridWidget.setLayout(gridLayout)
        self.hintField = QLabel(parent=cenWidget)
        # configure text filed and validator
        self.textField = QLineEdit()
        f = self.textField.font()
        f.setPointSize(18)
        self.textField.setFont(f)
        validator = QDoubleValidator()
        validator.setLocale(QLocale('English'))
        self.textField.setValidator(validator)
        # add widgets to top level layout
        vertLayout.addWidget(self.hintField)
        vertLayout.addWidget(self.textField)
        vertLayout.addWidget(gridWidget)
        # add buttons to grid layout
        self.buttonInstances = [QPushButton(item) for item in self.buttonsText]
        for i, button in enumerate(self.buttonInstances):
            button.clicked.connect(partial(self.calculateValue, button.text()))
            gridLayout.addWidget(button, i//self.col_num, i % self.col_num)

        self.setCentralWidget(cenWidget)
    def __init__(self, parent=None):
        super().__init__(parent)
        self.ui = self.__class__.ui[0]()
        self.ui.setupUi(self)
        self.ui.barcodes_fw.setLabel("Forward barcodes:")
        self.ui.barcodes_rev.setLabel("Reverse barcodes:")
        self.ui.named_inserts.setLabel("Named variable sequences:")

        style = QApplication.style()
        self.ui.fromFileBtn.setIcon(style.standardIcon(QStyle.SP_DirOpenIcon, None, self.ui.fromFileBtn))
        if QIcon.hasThemeIcon("edit-paste"):
            self.ui.fromClipboardBtn.setIcon(QIcon.fromTheme("edit-paste"))
        else:
            self.ui.fromClipboardBtn.setText("Paste")

        cellsvalidator = QDoubleValidator(0, 1, 1000)
        cellsvalidator.setLocale(QLocale(QLocale.English, QLocale.UnitedStates))
        self.cellsdelegate = SimpleDelegate(cellsvalidator, self)
        proto = QTableWidgetItem()
        proto.setFlags(Qt.ItemIsSelectable | Qt.ItemIsEditable | Qt.ItemIsEnabled)
        proto.setData(Qt.EditRole, "0.0")
        self.ui.sortedCellsTbl.setItemPrototype(proto)
        self.ui.sortedCellsTbl.setItemDelegate(self.cellsdelegate)
        self.ui.sortedCellsTbl.cellChanged.connect(self._validChanged)

        self.ui.insertSequence.setValidator(QRegularExpressionValidator(QRegularExpression("^([atcg]+)?[n]+(?(1)[atcg]*|[atcg]+)$", QRegularExpression.CaseInsensitiveOption)))

        self.ui.fromFileBtn.clicked.connect(self.fromFile)
        self.ui.fromClipboardBtn.clicked.connect(self.fromClipboard)

        self.ui.barcodes_fw.rowAdded.connect(self.fwCodeAdded)
        self.ui.barcodes_fw.rowChanged.connect(self.fwCodeChanged)
        self.ui.barcodes_fw.rowRemoved.connect(self.fwCodeRemoved)

        self.ui.barcodes_rev.rowAdded.connect(self.revCodeAdded)
        self.ui.barcodes_rev.rowChanged.connect(self.revCodeChanged)
        self.ui.barcodes_rev.rowRemoved.connect(self.revCodeRemoved)

        self.ui.barcodes_fw.valid.connect(self._validChanged)
        self.ui.barcodes_rev.valid.connect(self._validChanged)
        self.ui.named_inserts.valid.connect(self._validChanged)
        self.ui.insertSequence.textChanged.connect(self._validChanged)
        self.ui.dsiGrp.toggled.connect(self._validChanged)
        self.ui.dsiOnFw.toggled.connect(self._validChanged)
        self.ui.dsiOnRev.toggled.connect(self._validChanged)
Exemple #4
0
 def __init__(
         self,
         preset_value=NaN,
         placeholderText="",
         num_fmt="G",
         *args,
         **kwargs
         ):
     text = "" if isnan(preset_value) else f"{preset_value:{num_fmt}}"
     super().__init__(
             text,
             *args,
             placeholderText=placeholderText,
             **kwargs
             )
     self.editingFinished.connect(self._update_value)
     # Defaults to notation=QDoubleValidator.ScientificNotation
     validator = QDoubleValidator(self)
     validator.setLocale(QLocale("en_US"))
     self.setValidator(validator)
     self._num_fmt = num_fmt
     self._value = preset_value
     self.setStyleSheet(":read-only {background-color: lightGrey;}")
Exemple #5
0
    def initGUI(self):
        layout = QHBoxLayout()

        v = QVBoxLayout()

        line = QFrame()
        line.setFixedSize(300, 1)
        line.setStyleSheet('background-color: rgb(149,149,149)')

        widget = QWidget()
        grid = QGridLayout()

        addTrace = QPushButton('add trace')
        addTrace.setFixedSize(100, 30)
        addTrace.clicked[bool].connect(self.addTrace)
        grid.addWidget(addTrace, 9, 0)

        self.color = pg.ColorButton()
        self.color.setFixedSize(60, 30)
        self.color.setColor(color=(225, 200, 50))
        grid.addWidget(self.color, 8, 0)

        names = [
            'Num:',
            '',
            '',
            '',
            'Show',
            '',
            '',
            '',
            'z_em:',
            '',
            '...',
            '',
            'z_abs',
            '',
            '...',
            '',
            'HI',
            '',
            '...',
            '',
            'H2',
            '',
            '...',
            '',
            'Av',
            '',
            '...',
            '',
            'Av_bump',
            '',
            '...',
            '',
        ]

        positions = [(i, j) for i in range(8) for j in range(4)]

        for position, name in zip(positions, names):
            if name == '' or (position[1] == 0 and position[0] not in [0, 2]):
                continue
            label = QLabel(name)
            width = 30 if name == '...' else 45
            label.setFixedSize(width, 30)
            grid.addWidget(label, *position)

        self.opt_but = OrderedDict([
            ('traceNum', [0, 1]),
            ('z_em_min', [2, 1]),
            ('z_em_max', [2, 3]),
            ('z_abs_min', [3, 1]),
            ('z_abs_max', [3, 3]),
            ('HI_min', [4, 1]),
            ('HI_max', [4, 3]),
            ('H2_min', [5, 1]),
            ('H2_max', [5, 3]),
            ('Av_min', [6, 1]),
            ('Av_max', [6, 3]),
            ('Av_bump_min', [7, 1]),
            ('Av_bump_max', [7, 3]),
        ])
        validator = QDoubleValidator()
        validator.setLocale(QLocale('C'))

        for opt, pos in self.opt_but.items():
            b = QLineEdit(str(getattr(self, opt)))
            b.setFixedSize(40, 30)
            b.setValidator(validator)
            b.textChanged[str].connect(partial(self.onChanged, attr=opt))
            grid.addWidget(b, pos[0], pos[1])

        for position, name in zip(positions, names):
            if position[1] == 0 and position[0] not in [0, 2]:
                s = '' if position[0] == 1 else ':'
                setattr(self, name, QCheckBox(name + s))
                getattr(self, name).setFixedSize(80, 30)
                grid.addWidget(getattr(self, name), *position)

        self.Show.setChecked(False)
        self.z_abs.setChecked(True)
        self.z_abs.stateChanged.connect(self.checkEvent)
        self.HI.setChecked(True)
        self.H2.setChecked(True)
        self.Av.setChecked(False)
        self.Av_bump.setChecked(False)

        widget.setFixedSize(250, 400)
        widget.setLayout(grid)
        v.addWidget(widget)

        v.addWidget(line)

        self.addSDSSStars = QCheckBox('add SDSS stars')
        self.addSDSSStars.setFixedSize(200, 30)
        self.addSDSSStars.stateChanged.connect(self.addStellarLocus)
        self.addSDSSStars.setChecked(False)
        v.addWidget(self.addSDSSStars)

        self.addSDSSQSO = QCheckBox('add SDSS QSO:')
        self.addSDSSQSO.setFixedSize(160, 30)
        self.addSDSSQSO.stateChanged.connect(self.addQSOSDSS)
        self.addSDSSQSO.setChecked(False)
        v.addWidget(self.addSDSSQSO)
        h = QHBoxLayout()
        self.z_SDSS_min = QLineEdit('2.6')
        self.z_SDSS_min.setFixedSize(50, 30)
        h.addWidget(self.z_SDSS_min)
        label = QLabel('...')
        label.setFixedSize(15, 30)
        h.addWidget(label)
        self.z_SDSS_max = QLineEdit('2.8')
        self.z_SDSS_max.setFixedSize(50, 30)
        h.addWidget(self.z_SDSS_max)
        h.addStretch(1)
        v.addLayout(h)

        v.addWidget(line)

        v.addWidget(QLabel('Select by criterion:'))
        self.criteria = QTextEdit('')
        self.criteria.setFixedSize(300, 200)
        self.criteria.setText('r-i 0.6 0.8 \ni-g -2.0 -0.8\ng-r 0.2 0.6')
        v.addWidget(self.criteria)
        self.select = QPushButton('Apply')
        self.select.setFixedSize(80, 30)
        self.select.clicked[bool].connect(self.applyCriteria)
        v.addWidget(self.select)

        v.addWidget(line)

        v.addWidget(QLabel('Select by name:'))
        self.names = QTextEdit('')
        self.names.setFixedSize(300, 200)
        self.names.setText('7093-0632 \n6439-0160')
        v.addWidget(self.names)
        self.shownames = QPushButton('Show')
        self.shownames.setFixedSize(80, 30)
        self.shownames.clicked[bool].connect(self.applyNames)
        v.addWidget(self.shownames)
        v.addStretch(1)
        layout.addLayout(v)

        self.plot = pg.GraphicsWindow(size=(1900, 1800))

        self.p = []
        for comb in self.combs:
            p = colorColorPlot(self, comb)
            setattr(self, p.name, p)
            self.p.append(getattr(self, p.name))
            self.plot.addItem(self.p[-1],
                              row=(len(self.p) - 1) // 4,
                              col=(len(self.p) - 1) % 4)

        self.setLinks()
        layout.addWidget(self.plot)
        self.setLayout(layout)
Exemple #6
0
    def initUI(self):
        self.setGeometry(800 - WIDTH // 2, 450 - HEIGHT // 2, WIDTH, HEIGHT)
        p = self.palette()
        p.setColor(self.backgroundRole(), QColor(40, 40, 40))
        self.setPalette(p)
        validator = QDoubleValidator()
        validator.setLocale(QLocale("Russia"))
        self.parameters = [QLineEdit(self) for _ in range(3)]
        offset = 120
        for i in range(len(self.parameters)):
            self.parameters[i].setGeometry(80, offset + 40 * i, 100, 30)
            self.parameters[i].setValidator(validator)
            self.parameters[i].setText("1")
            label = QLabel(self)
            label.setText("{} = ".format(chr(i + ord('a'))))
            label.setGeometry(50, offset + 40 * i, 70, 30)
            label.setStyleSheet("color: white")
        self.parameters[0].textChanged.connect(self.update_a_field)
        self.parameters[1].textChanged.connect(self.update_b_field)
        self.parameters[2].textChanged.connect(self.update_c_field)

        label = QLabel(self)
        label.setGeometry(65, 450, 60, 30)
        label.setText("alpha = ")
        label.setStyleSheet('color: white')
        self.alpha_field = QLineEdit(self)
        self.alpha_field.setGeometry(120, 450, 60, 30)
        self.alpha_field.setValidator(validator)
        self.alpha_field.setText(str(self.alpha))
        self.alpha_field.textChanged.connect(self.update_alpha_field)

        label = QLabel(self)
        label.setGeometry(65, 500, 60, 30)
        label.setText("beta = ")
        label.setStyleSheet('color: white')
        self.beta_field = QLineEdit(self)
        self.beta_field.setGeometry(120, 500, 60, 30)
        self.beta_field.setValidator(validator)
        self.beta_field.setText(str(self.beta))
        self.beta_field.textChanged.connect(self.update_beta_field)
        combo = QComboBox(self)
        combo.addItems(
            ["Task {}".format(i) for i in range(1,
                                                len(self.TASKS) + 1)])
        combo.move(60, 15)
        combo.activated[str].connect(self.onSelect)

        self.label = QLabel(self)
        pixmap = QPixmap('formula{}.png'.format(self.task_number))
        self.label.setPixmap(pixmap)
        self.label.move((self.panelWidth - pixmap.width()) / 2, 50)
        # self.label.move(0, 100)
        self.label.setGeometry((self.panelWidth - pixmap.width()) / 2, 50,
                               pixmap.width() + 100, pixmap.height())

        label = QLabel(self)
        label.setGeometry(40, 275, 60, 30)
        label.setText("left")
        label.setStyleSheet('color: white')
        self.left_x_text_field = QLineEdit(self)
        self.left_x_text_field.setGeometry(40, 300, 60, 30)
        self.left_x_text_field.setText(str(self.t_left_top.x()))
        self.left_x_text_field.setValidator(validator)
        self.left_x_text_field.textChanged.connect(self.update_left_x_field)

        label = QLabel(self)
        label.setGeometry(120, 275, 60, 30)
        label.setText("top")
        label.setStyleSheet('color: white')
        self.left_y_text_field = QLineEdit(self)
        self.left_y_text_field.setGeometry(120, 380, 60, 30)
        self.left_y_text_field.setText(str(self.t_left_top.y()))
        self.left_y_text_field.setValidator(validator)
        self.left_y_text_field.textChanged.connect(self.update_left_y_field)

        label = QLabel(self)
        label.setGeometry(40, 355, 60, 30)
        label.setText("right")
        label.setStyleSheet('color: white')
        self.right_x_text_field = QLineEdit(self)
        self.right_x_text_field.setGeometry(40, 380, 60, 30)
        self.right_x_text_field.setText(str(self.t_right_bottom.x()))
        self.right_x_text_field.setValidator(validator)
        self.right_x_text_field.textChanged.connect(self.update_right_x_field)

        label = QLabel(self)
        label.setGeometry(120, 355, 60, 30)
        label.setText("bottom")
        label.setStyleSheet('color: white')
        self.right_y_text_field = QLineEdit(self)
        self.right_y_text_field.setGeometry(120, 300, 60, 30)
        self.right_y_text_field.setText(str(self.t_right_bottom.y()))
        self.right_y_text_field.setValidator(validator)
        self.right_y_text_field.textChanged.connect(self.update_right_y_field)

        self.setWindowTitle('Points')
        self.show()
Exemple #7
0
 def add_subscriber(self, full_description: variable_full_description,
                    q_obj_ref):
     """
     Adding subscriber for plc data readout.
     :param full_description: variable_full_description
     :param q_obj_ref: QObject - Reference for QObject
     :return:
     """
     read_subscriber_added_flag = False
     write_trigger_added_flag = False
     if isinstance(q_obj_ref, QLabel):
         data = BaseData(full_description)
         if q_obj_ref.pixmap() is not None:
             slot = lambda val: q_obj_ref.setEnabled(bool(val))
         else:
             slot = lambda val: q_obj_ref.setText(str(val))
         self.populate_bytes_readout(data)
         self._visu_variable_list.append(self.visu_object(data, slot))
         read_subscriber_added_flag = True
     elif isinstance(q_obj_ref, QPushButton):
         if full_description.action in (Action.TOGGLE, Action.RESET,
                                        Action.SET):
             data = WritableBitData(full_description)
             q_obj_ref.clicked.connect(
                 lambda: self.populate_write_request_by_bit_variable(data))
             write_trigger_added_flag = True
         else:
             data = BaseData(full_description)
         if q_obj_ref.isCheckable():
             slot = lambda val: self.slot_handling_qpushbutton(
                 q_obj_ref, data, val)
             self.populate_bytes_readout(data)
             self._visu_variable_list.append(self.visu_object(data, slot))
             read_subscriber_added_flag = True
     elif isinstance(q_obj_ref, QSlider) or isinstance(q_obj_ref, QDial):
         data = WritableNumericData(full_description)
         if full_description.action == Action.WRITE:
             q_obj_ref.setTracking(False)
             q_obj_ref.valueChanged.connect(
                 lambda val: self.populate_write_request_by_int_variable(
                     data, val))
             write_trigger_added_flag = True
         slot = lambda val: self.slot_handling_qslider(q_obj_ref, data, val)
         self.populate_bytes_readout(data)
         self._visu_variable_list.append(self.visu_object(data, slot))
         read_subscriber_added_flag = True
     elif isinstance(q_obj_ref, QProgressBar):
         slot = lambda val: q_obj_ref.setValue(int(val))
         data = BaseData(full_description)
         self.populate_bytes_readout(data)
         self._visu_variable_list.append(self.visu_object(data, slot))
         read_subscriber_added_flag = True
     elif isinstance(q_obj_ref, QLineEdit):
         if full_description.action == Action.WRITE:
             data = WritableNumericData(full_description)
             if data.data_type == DataType.REAL:
                 validator = QDoubleValidator(*data.value_range, 24)
                 locale = QLocale(QLocale.C)
                 locale.setNumberOptions(QLocale.RejectGroupSeparator)
                 validator.setLocale(locale)
                 q_obj_ref.editingFinished.connect(
                     lambda: self.populate_write_request_by_int_variable(
                         data, float(q_obj_ref.text())))
             else:
                 validator = DoubleWordValidator(*data.value_range)
                 q_obj_ref.editingFinished.connect(
                     lambda: self.populate_write_request_by_int_variable(
                         data, int(q_obj_ref.text())))
             q_obj_ref.setValidator(validator)
             write_trigger_added_flag = True
         else:
             data = BaseData(full_description)
             q_obj_ref.setReadOnly(True)
         slot = lambda val: self.slot_handling_qlineedit(
             q_obj_ref, data, val)
         self.populate_bytes_readout(data)
         self._visu_variable_list.append(self.visu_object(data, slot))
         read_subscriber_added_flag = True
     if not (read_subscriber_added_flag or write_trigger_added_flag):
         logger.warning('No supported widget, or operation for: ' +
                        q_obj_ref.objectName())
     else:
         if read_subscriber_added_flag:
             logger.debug('Subscriber added for reading: ' +
                          q_obj_ref.objectName())
         if write_trigger_added_flag:
             logger.debug('Added trigger for write operation: ' +
                          q_obj_ref.objectName())