Exemplo n.º 1
0
class HexSpinBox(QSpinBox):
    def __init__(self):
        super(HexSpinBox, self).__init__()
        self.validator = QRegExpValidator(QRegExp("[0-9A-Fa-f]{1, 8}"), self)
        self.setValidator(self.validator)

    def setRangeMinMax(self, min, max):
        self.setRange(min, max)

    # 3 possible return values, Invalid, Intermediate, Acceptable
    def validate(self, text, pos):
        res = self.validator.validate(text, pos)
        print(res)
        return res

    def textFromValue(self, value):
        print(f'textFromValue: {value} => {hex(value)[2:].upper()}')
        return hex(value)[2:].upper()

    def valueFromText(self, text):
        print(f'valueFromText: {value}')
        try:
            ival = int(text, 16)
        except:
            ival = 0
        return ival
Exemplo n.º 2
0
class ImportTagsOptions(QWidget, Ui_ImportTagsOptions):
    def __init__(self, parent):
        super().__init__(parent)
        self.setupUi(self)
        self.init_ui()
        self.link_events()

    def init_ui(self):
        # TODO: load from config file
        extensions_rx = QRegExp("(\\.\\w+)(;\\s*\\.\\w+)*")
        self.extensions_validator = QRegExpValidator(extensions_rx)
        # self.input_extensions.setValidator(extensions_validator)

    def link_events(self):
        self.input_extensions.textChanged.connect(self.validate_entry)

    def validate_entry(self, text):
        state, _, _ = self.extensions_validator.validate(text, 0)
        if state == QValidator.State.Intermediate:
            self.input_extensions.setStyleSheet(
                "QLineEdit { background: rgb(255, 229, 204)}")
        elif state == QValidator.State.Invalid:
            self.input_extensions.setStyleSheet(
                "QLineEdit { background: rgb(255, 153, 153)}")
        else:
            self.input_extensions.setStyleSheet("")

    def get_options(self):
        import_options = {
            "label_folder": self.input_tag_folder.text(),
            "suffix": self.input_suffix.text(),
            "extensions": self.input_extensions.text().split(";"),
        }

        opts = {
            "task_options": import_options,
            "save": self.checkbox_save.isChecked(),
            "overwrite": self.checkbox_overwrite.isChecked(),
        }
        return opts