コード例 #1
0
 def init_regex(self):
     self.__rules.update({
         scheme['name']: [QRegExp(i) for i in scheme['regex']] + [
             QRegExp("|".join(
                 [r"\b%s\b" % keyword for keyword in scheme['key']]))
         ]
         for scheme in self.rules_scheme['scheme']
     })
コード例 #2
0
ファイル: highlighter.py プロジェクト: usbalex/pyqtconsole
 def __init__(self, formats=None):
     self.styles = styles = dict(STYLES, **(formats or {}))
     self.rules = [
         # Match the prompt incase of a console
         (QRegExp(r'IN[^\:]*'), 0, styles['inprompt']),
         (QRegExp(r'OUT[^\:]*'), 0, styles['outprompt']),
         # Numeric literals
         (QRegExp(r'\b[+-]?[0-9]+\b'), 0, styles['numbers']),
     ]
コード例 #3
0
 def __init__(self, parent=None):
     """Display a dialog to open a new redis connection"""
     super(OpenRedisDialog, self).__init__(parent)
     self.load_ui()
     v = QRegExpValidator(QRegExp("([^:/]+)?(:[0-9]+)?"))
     self.ui.tcp.setValidator(v)
     self.ui.tcp_option.setChecked(True)
コード例 #4
0
ファイル: main.py プロジェクト: lnls-sirius/pydm-opi
    def __init__(self, parent=None, macros=None, **kwargs):
        super().__init__(parent=parent,
                         macros=macros,
                         ui_filename=EPICSTEL_MAIN_UI)
        self.login_remote()

        self.delete_pv_btn.clicked.connect(self.del_pv)
        self.delete_user_btn.clicked.connect(self.del_user)
        self.delete_team_btn.clicked.connect(self.del_team)

        self.add_user_btn.clicked.connect(lambda: self.show_add_dialog("user"))
        self.add_pv_btn.clicked.connect(lambda: self.show_add_dialog("pv"))
        self.add_team_btn.clicked.connect(lambda: self.show_add_dialog("team"))

        self.pvs_table.clicked.connect(lambda c: self.cell_clicked(c, "pvs"))
        self.teams_table.clicked.connect(
            lambda c: self.cell_clicked(c, "teams"))
        self.users_table.clicked.connect(
            lambda c: self.cell_clicked(c, "users"))

        ip_regex = "^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]).){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$"

        self.ca_addr_input.setValidator(QRegExpValidator(QRegExp(ip_regex)))
        self.del_sc = QShortcut(QKeySequence("Del"), self)
        self.del_sc.activated.connect(self.del_ca_addr)
        self.add_ca_addr_btn.clicked.connect(self.add_ca_addr)
コード例 #5
0
 def create_lineedit(self,
                     text,
                     option,
                     default=NoDefault,
                     tip=None,
                     alignment=Qt.Vertical,
                     regex=None,
                     restart=False,
                     word_wrap=True,
                     placeholder=None,
                     content_type=None,
                     section=None):
     label = QLabel(text)
     label.setWordWrap(word_wrap)
     edit = QLineEdit()
     edit.content_type = content_type
     layout = QVBoxLayout() if alignment == Qt.Vertical else QHBoxLayout()
     layout.addWidget(label)
     layout.addWidget(edit)
     layout.setContentsMargins(0, 0, 0, 0)
     if tip:
         edit.setToolTip(tip)
     if regex:
         edit.setValidator(QRegExpValidator(QRegExp(regex)))
     if placeholder:
         edit.setPlaceholderText(placeholder)
     self.lineedits[edit] = (section, option, default)
     widget = QWidget(self)
     widget.label = label
     widget.textbox = edit
     widget.setLayout(layout)
     edit.restart_required = restart
     edit.label_text = text
     return widget
コード例 #6
0
    def __init__(self, parent=None):

        super().__init__(parent)

        self._data = {"element1": "", "element2": "", "energy": 0}
        # Reference to function that computes pileup energy based on two emission lines
        self._compute_energy = None

        self.setWindowTitle("Pileup Peak Parameters")

        self.le_element1 = LineEditExtended()
        set_tooltip(self.le_element1,
                    "The <b>name</b> of the emission line #1")
        self.le_element2 = LineEditExtended()
        set_tooltip(self.le_element2,
                    "The <b>name</b> of the emission line #2")
        self.peak_energy = LineEditReadOnly()
        set_tooltip(
            self.peak_energy,
            "The <b>energy</b> (location) of the pileup peak center. The energy can not"
            "be edited: it is set based on the selected emission lines",
        )

        self._validator_eline = QRegExpValidator()
        # TODO: the following regex is too broad: [a-z] should be narrowed down
        self._validator_eline.setRegExp(QRegExp(r"^[A-Z][a-z]?_[KLM][a-z]\d$"))

        instructions = QLabel(
            "Specify two emission lines, e.g. Si_Ka1 and Fe_Ka1")

        grid = QGridLayout()
        grid.addWidget(QLabel("Emission line 1:"), 0, 0)
        grid.addWidget(self.le_element1, 0, 1)
        grid.addWidget(QLabel("Emission line 2:"), 1, 0)
        grid.addWidget(self.le_element2, 1, 1)
        grid.addWidget(QLabel("Peak energy, keV:"), 2, 0)
        grid.addWidget(self.peak_energy, 2, 1)

        button_box = QDialogButtonBox(QDialogButtonBox.Ok
                                      | QDialogButtonBox.Cancel)
        button_box.button(QDialogButtonBox.Cancel).setDefault(True)
        button_box.accepted.connect(self.accept)
        button_box.rejected.connect(self.reject)
        self.pb_ok = button_box.button(QDialogButtonBox.Ok)

        vbox = QVBoxLayout()
        vbox.addWidget(instructions)
        vbox.addSpacing(10)
        vbox.addLayout(grid)
        vbox.addWidget(button_box)

        self.setLayout(vbox)

        self.le_element1.editingFinished.connect(
            self.le_element1_editing_finished)
        self.le_element2.editingFinished.connect(
            self.le_element2_editing_finished)

        self.le_element1.textChanged.connect(self.le_element1_text_changed)
        self.le_element2.textChanged.connect(self.le_element2_text_changed)
コード例 #7
0
ファイル: list.py プロジェクト: fisher2017/Anaconda
 def __init__(self, regex=None, tooltip=None):
     super(EditableListDelegate, self).__init__()
     self.regex = regex
     self.qregex = QRegExp(regex)
     self.tooltip = tooltip
     self.validator = QRegExpValidator(self.qregex)
     self.edit = None
コード例 #8
0
ファイル: fileswitcher.py プロジェクト: wangxiaofei558/spyder
    def __init__(self, parent, plugin, tabs, data, icon):
        QDialog.__init__(self, parent)

        # Variables
        self.plugins_tabs = []
        self.plugins_data = []
        self.plugins_instances = []
        self.add_plugin(plugin, tabs, data, icon)
        self.plugin = None  # Last plugin with focus
        self.mode = self.FILE_MODE  # By default start in this mode
        self.initial_cursors = None  # {fullpath: QCursor}
        self.initial_path = None  # Fullpath of initial active editor
        self.initial_widget = None  # Initial active editor
        self.line_number = None  # Selected line number in filer
        self.is_visible = False  # Is the switcher visible?

        help_text = _("Press <b>Enter</b> to switch files or <b>Esc</b> to "
                      "cancel.<br><br>Type to filter filenames.<br><br>"
                      "Use <b>:number</b> to go to a line, e.g. "
                      "<b><code>main:42</code></b><br>"
                      "Use <b>@symbol_text</b> to go to a symbol, e.g. "
                      "<b><code>@init</code></b>"
                      "<br><br> Press <b>Ctrl+W</b> to close current tab.<br>")

        # Either allow searching for a line number or a symbol but not both
        regex = QRegExp("([A-Za-z0-9_]{0,100}@[A-Za-z0-9_]{0,100})|" +
                        "([A-Za-z0-9_]{0,100}:{0,1}[0-9]{0,100})")

        # Widgets
        self.edit = FilesFilterLine(self)
        self.help = HelperToolButton()
        self.list = QListWidget(self)
        self.filter = KeyPressFilter()
        regex_validator = QRegExpValidator(regex, self.edit)

        # Widgets setup
        self.setWindowFlags(Qt.Popup | Qt.FramelessWindowHint)
        self.setWindowOpacity(0.95)
        self.edit.installEventFilter(self.filter)
        self.edit.setValidator(regex_validator)
        self.help.setToolTip(help_text)
        self.list.setItemDelegate(HTMLDelegate(self))

        # Layout
        edit_layout = QHBoxLayout()
        edit_layout.addWidget(self.edit)
        edit_layout.addWidget(self.help)
        layout = QVBoxLayout()
        layout.addLayout(edit_layout)
        layout.addWidget(self.list)
        self.setLayout(layout)

        # Signals
        self.rejected.connect(self.restore_initial_state)
        self.filter.sig_up_key_pressed.connect(self.previous_row)
        self.filter.sig_down_key_pressed.connect(self.next_row)
        self.edit.returnPressed.connect(self.accept)
        self.edit.textChanged.connect(self.setup)
        self.list.itemSelectionChanged.connect(self.item_selection_changed)
        self.list.clicked.connect(self.edit.setFocus)
コード例 #9
0
    def __init__(self, main_window, oswebext):
        """
        desc:
            Constructor.

        arguments:
            main_window:	The main-window object.
        """

        super(oswebext_widget,
              self).__init__(main_window, ui=u'extensions.oswebext.oswebext')
        self._oswebext = oswebext
        self.ui.button_test.clicked.connect(self._test)
        self.ui.fs_checkBox.toggled.connect(self._run_linter)
        self.ui.button_jatos.clicked.connect(self._export_jatos)
        self.ui.button_convert.clicked.connect(self._convert_results)
        self.ui.plaintextedit_welcome_text.setPlainText(
            safe_decode(cfg.oswebext_welcome_text))
        self.ui.plaintextedit_welcome_text.textChanged.connect(
            lambda: setattr(cfg, 'oswebext_welcome_text',
                            self.ui.plaintextedit_welcome_text.toPlainText()))
        self.ui.plaintextedit_external_js.setPlainText(
            safe_decode(cfg.oswebext_external_js))
        self.ui.plaintextedit_external_js.textChanged.connect(
            lambda: setattr(cfg, 'oswebext_external_js',
                            self.ui.plaintextedit_external_js.toPlainText()))
        self.ui.label_version.setText(__version__)
        self.ui.linedit_subject.setValidator(
            QRegExpValidator(QRegExp("^(?:\d+(?:-\d+)?(?:,(?!$))?)+")))
        self.ui.icon_expsize_warning.setPixmap(
            QIcon.fromTheme('emblem-important').pixmap(32, 32))
        self._init_widgets()
        self._run_linter()
コード例 #10
0
    def __init__(self, initial_color=MPL_DEFAULT, parent=None):
        super(ColorSelector, self).__init__(parent=parent)

        self.initial_color = QColor(initial_color)

        # Create line edit and push button and add to a horizontal layout
        self.line_edit = QLineEdit(self)
        self.button = QPushButton(self)
        self.h_layout = QHBoxLayout(self)
        self.h_layout.addWidget(self.line_edit)
        self.h_layout.addWidget(self.button)
        self.h_layout.setContentsMargins(0, 0, 0, 0)

        self.line_edit.setText(self.initial_color.name())
        self.prev_color = self.initial_color.name()

        # Color input only allows valid hex codes.
        re = QRegExp('^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$')
        validator = ColorValidator(re, self.line_edit, self)
        self.line_edit.setValidator(validator)

        self.button.setAutoFillBackground(True)
        self.button.setFlat(True)
        self.update_color_button()

        # Signals
        self.button.clicked.connect(self.launch_qcolor_dialog)
        self.line_edit.textChanged.connect(self.update_color_button)
        self.line_edit.editingFinished.connect(
            self.convert_three_digit_hex_to_six)
コード例 #11
0
 def create_lineedit(self,
                     text,
                     default=None,
                     tip=None,
                     alignment=Qt.Horizontal,
                     regex=None,
                     wrap=True):
     label = QLabel(text)
     label.setWordWrap(wrap)
     edit = QLineEdit()
     layout = QHBoxLayout() if alignment == Qt.Horizontal else QVBoxLayout()
     layout.addWidget(label)
     layout.addWidget(edit)
     layout.setContentsMargins(0, 0, 0, 0)
     if default:
         edit.setText(default)
     if tip:
         edit.setToolTip(tip)
     if regex:
         edit.setValidator(QRegExpValidator(QRegExp(regex)))
     widget = QWidget(self)
     widget.label = label
     widget.edit = edit
     widget.setLayout(layout)
     return widget
コード例 #12
0
    def __init__(self, document):
        QSyntaxHighlighter.__init__(self, document)

        # Multi-line strings (expression, flag, style)
        # FIXME: The triple-quotes in these two lines will mess up the
        # syntax highlighting from this point onward
        self.tri_single = (QRegExp("'''"), 1, STYLES['string2'])
        self.tri_double = (QRegExp('"""'), 2, STYLES['string2'])

        rules = []

        # Keyword, operator, and brace rules
        rules += [(r'\b%s\b' % w, 0, STYLES['keyword'])
                  for w in PythonHighlighter.keywords]
        rules += [(r'%s' % o, 0, STYLES['operator'])
                  for o in PythonHighlighter.operators]
        rules += [(r'%s' % b, 0, STYLES['brace'])
                  for b in PythonHighlighter.braces]

        # All other rules
        rules += [
            # 'self'
            (r'\bself\b', 0, STYLES['self']),

            # Double-quoted string, possibly containing escape sequences
            (r'"[^"\\]*(\\.[^"\\]*)*"', 0, STYLES['string']),
            # Single-quoted string, possibly containing escape sequences
            (r"'[^'\\]*(\\.[^'\\]*)*'", 0, STYLES['string']),

            # 'def' followed by an identifier
            (r'\bdef\b\s*(\w+)', 1, STYLES['defclass']),
            # 'class' followed by an identifier
            (r'\bclass\b\s*(\w+)', 1, STYLES['defclass']),

            # From '#' until a newline
            (r'#[^\n]*', 0, STYLES['comment']),

            # Numeric literals
            (r'\b[+-]?[0-9]+[lL]?\b', 0, STYLES['numbers']),
            (r'\b[+-]?0[xX][0-9A-Fa-f]+[lL]?\b', 0, STYLES['numbers']),
            (r'\b[+-]?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?\b', 0,
             STYLES['numbers']),
        ]

        # Build a QRegExp for each pattern
        self.rules = [(QRegExp(pat), index, fmt)
                      for (pat, index, fmt) in rules]
コード例 #13
0
ファイル: helperwidgets.py プロジェクト: timgates42/spyder
    def __init__(self, parent, regex_base=None, key_filter_dict=None):
        super(FinderLineEdit, self).__init__(parent)
        self.key_filter_dict = key_filter_dict

        if regex_base is not None:
            # Widget setup
            regex = QRegExp(regex_base + "{100}")
            self.setValidator(QRegExpValidator(regex))
コード例 #14
0
 def __init__(self, *args, **kwargs):
     super(ProbeBasicLathe, self).__init__(*args, **kwargs)
     self.run_from_line_Num.setValidator(QRegExpValidator(
         QRegExp("[0-9]*")))
     self.feed_unit_per_minute = 0.0
     self.feed_per_rev = 0.0
     self.css_sword = 0.0
     self.rpm_mode = 0.0
コード例 #15
0
ファイル: helperwidgets.py プロジェクト: fisher2017/Anaconda
 def set_regex(self, regex):
     """
     """
     if regex:
         self.regex = regex
         self.qregex = QRegExp(regex)
         validator = QRegExpValidator(self.qregex)
         self._text.setValidator(validator)
コード例 #16
0
ファイル: delegates.py プロジェクト: 3ll3d00d/beqdesigner
 def createEditor(self, widget, option, index):
     if not index.isValid():
         return 0
     if index.column() == 0:  # only on the cells in the first column
         editor = QLineEdit(widget)
         validator = QRegExpValidator(QRegExp(self.__regex), editor)
         editor.setValidator(validator)
         return editor
     return super(RegexValidator, self).createEditor(widget, option, index)
コード例 #17
0
 def __init__(self, *args, **kwargs):
     super(ProbeBasicLathe, self).__init__(*args, **kwargs)
     self.run_from_line_Num.setValidator(QRegExpValidator(
         QRegExp("[0-9]*")))
     self.feed_unit_per_minute = 0.0
     self.feed_per_rev = 0.0
     self.css_sword = 0.0
     self.rpm_mode = 0.0
     self.btnMdiBksp.clicked.connect(self.mdiBackSpace_clicked)
     self.btnMdiSpace.clicked.connect(self.mdiSpace_clicked)
コード例 #18
0
    def show_debug_notifications(self):
        self.all_button.setChecked(False)
        self.info_button.setChecked(False)
        self.warn_button.setChecked(False)
        self.error_button.setChecked(False)
        self.debug_button.setChecked(True)

        self.notification_name.setText("Debug Notifications")
        self.all_notification_model_proxy.setFilterRegExp(
            QRegExp("DEBUG", Qt.CaseSensitive, QRegExp.FixedString))
コード例 #19
0
    def __init__(self, parent, callback=None):
        super(ShortcutFinder, self).__init__(parent)
        self._parent = parent

        # Widget setup
        regex = QRegExp(VALID_FINDER_CHARS + "{100}")
        self.setValidator(QRegExpValidator(regex))

        # Signals
        if callback:
            self.textChanged.connect(callback)
コード例 #20
0
    def coord_line_edit(self):
        template = QRegExp(r"[-]?\d*\.?\d{0,3}")
        validator = QRegExpValidator(template)

        line = QLineEdit("0.0")
        line.setValidator(validator)
        line.setFixedWidth(60)
        # line.editingFinished.connect(self.update_dist_to_target)
        line.textChanged.connect(self.update_dist_to_target)

        return line
コード例 #21
0
    def update_format_string(self):
        """
        Accept a unit to display with a channel's value

        The unit may or may not be displayed based on the :attr:`showUnits`
        attribute. Receiving a new value for the unit causes the display to
        reset.
        """
        if self.channeltype is float:
            decimal_point = locale.localeconv()['decimal_point']
            # decimal_point = '.'
            if self._show_units and self._unit != "":
                re = QRegExp('(-?)(0|([1-9][0-9]*))(\\{}[0-9]+)?( {})?'.format(
                    decimal_point, self._unit))
            else:
                re = QRegExp(
                    '(-?)(0|([1-9][0-9]*))(\\{}[0-9]+)?'.format(decimal_point))
            validator = QRegExpValidator(re, self)
            self.setValidator(validator)
        super().update_format_string()
コード例 #22
0
    def __init__(self, parent, callback=None, main=None,
                 regex_base=VALID_FINDER_CHARS):
        super(FinderLineEdit, self).__init__(parent)
        self._parent = parent
        self.main = main

        # Widget setup
        regex = QRegExp(regex_base + "{100}")
        self.setValidator(QRegExpValidator(regex))

        # Signals
        if callback:
            self.textChanged.connect(callback)
コード例 #23
0
ファイル: pygments_sh.py プロジェクト: pixpil/gii
    def highlight_block(self, text, block):
        """
        Highlights the block using a pygments lexer.

        :param text: text of the block to highlith
        :param block: block to highlight
        """
        if self.color_scheme.name != self._pygments_style:
            self._pygments_style = self.color_scheme.name
            self._update_style()
        original_text = text
        if self.editor and self._lexer and self.enabled:
            if block.blockNumber():
                prev_data = self._prev_block.userData()
                if prev_data:
                    if hasattr(prev_data, "syntax_stack"):
                        self._lexer._saved_state_stack = prev_data.syntax_stack
                    elif hasattr(self._lexer, '_saved_state_stack'):
                        del self._lexer._saved_state_stack

            # Lex the text using Pygments
            index = 0
            usd = block.userData()
            if usd is None:
                usd = TextBlockUserData()
                block.setUserData(usd)
            tokens = list(self._lexer.get_tokens(text))
            for token, text in tokens:
                length = len(text)
                fmt = self._get_format(token)
                if token in [
                        Token.Literal.String, Token.Literal.String.Doc,
                        Token.Comment
                ]:
                    fmt.setObjectType(fmt.UserObject)
                self.setFormat(index, length, fmt)
                index += length

            if hasattr(self._lexer, '_saved_state_stack'):
                setattr(usd, "syntax_stack", self._lexer._saved_state_stack)
                # Clean up for the next go-round.
                del self._lexer._saved_state_stack

            # spaces
            text = original_text
            expression = QRegExp(r'\s+')
            index = expression.indexIn(text, 0)
            while index >= 0:
                index = expression.pos(0)
                length = len(expression.cap(0))
                self.setFormat(index, length, self._get_format(Whitespace))
                index = expression.indexIn(text, index + length)

            self._prev_block = block
コード例 #24
0
ファイル: preferences.py プロジェクト: fisher2017/Anaconda
    def create_textbox(self, label, option, hint=None, regex=None, check=None):
        widget = QLineEdit()
        widget.setAttribute(Qt.WA_MacShowFocusRect, False)
        widget.setMinimumWidth(250)

        if regex:
            regex_validator = QRegExpValidator(QRegExp(regex))
            widget.setValidator(regex_validator)

        widget.get_value = lambda w=widget: w.text()
        widget.set_value = lambda value, w=widget: w.setText(value)
        widget.set_warning = lambda w=widget: w.setSelection(0, 1000)
        widget.textChanged.connect(
            lambda v=None, w=widget: self.options_changed(widget=w))

        self.create_widget(widget=widget,
                           option=option,
                           label=label,
                           hint=hint,
                           check=check)
コード例 #25
0
ファイル: ezdialog.py プロジェクト: ezcad-dev/ezcad
    def create_lineedit(self,
                        text,
                        default=None,
                        tip=None,
                        alignment=Qt.Horizontal,
                        regex=None,
                        wrap=True):
        """Create line-edit widget.

        :param text: key
        :type text: str
        :param default: default value
        :type default: str
        :param tip: tool tip
        :type tip: str
        :param alignment: alignment, horizontal or vertical
        :type alignment: Qt
        :param regex: regular expression
        :type regex: str
        :param wrap: wrap text
        :type wrap: bool
        :return: QWidget
        """
        label = QLabel(text)
        label.setWordWrap(wrap)
        edit = QLineEdit()
        layout = QHBoxLayout() if alignment == Qt.Horizontal else QVBoxLayout()
        layout.addWidget(label)
        layout.addWidget(edit)
        layout.setContentsMargins(0, 0, 0, 0)
        if default:
            edit.setText(default)
        if tip:
            edit.setToolTip(tip)
        if regex:
            edit.setValidator(QRegExpValidator(QRegExp(regex)))
        widget = QWidget(self)
        widget.label = label
        widget.edit = edit
        widget.setLayout(layout)
        return widget
コード例 #26
0
    def __init__(self, main_window, oswebext):
        """
		desc:
			Constructor.

		arguments:
			main_window:	The main-window object.
		"""

        super(oswebext_widget,
              self).__init__(main_window, ui=u'extensions.oswebext.oswebext')
        self._oswebext = oswebext
        self.ui.button_test.clicked.connect(self._test)
        self.ui.button_jatos.clicked.connect(self._export_jatos)
        self.ui.button_convert.clicked.connect(self._convert_results)
        self.ui.label_version.setText(__version__)
        self.ui.linedit_subject.setValidator(
            QRegExpValidator(QRegExp("^(?:\d+(?:-\d+)?(?:,(?!$))?)+")))
        self.ui.icon_expsize_warning.setPixmap(
            QIcon.fromTheme('emblem-important').pixmap(32, 32))
        self._run_linter()
コード例 #27
0
    def __init__(self, *args, **kwargs):
        super(ParametersFrame, self).__init__(*args, **kwargs)
        self.setFrameStyle(QFrame.Panel | QFrame.Raised)
        self.contentLayout = QGridLayout()

        self.setpointVoltageLabel = QLabel("Fixed voltage [3000 to 7000] V")
        self.setpointVoltageSettingLabel = QLabel()
        self.setpointVoltageInp = QLineEdit()
        self.setpointVoltageInp.setMaximumWidth(100)
        self.setpointVoltageInp.setValidator(QIntValidator(3000, 7000))
        self.setpointVoltageInp.setToolTip("Final voltage setpoint.")
        self.setpointVoltageInp.setText("3000")
        self.contentLayout.addWidget(self.setpointVoltageLabel, 0, 0, 1, 1)
        self.contentLayout.addWidget(self.setpointVoltageInp, 0, 1, 1, 1)
        self.contentLayout.addWidget(self.setpointVoltageSettingLabel, 0, 2, 1,
                                     1)

        self.stepToFixDelayLabel = QLabel("Step to Fixed delay (mm:ss)")
        self.stepToFixDelaySettingLabel = QLabel()
        self.stepToFixDelayInp = QLineEdit()
        self.stepToFixDelayInp.setMaximumWidth(100)
        self.stepToFixDelayInp.setValidator(
            QRegExpValidator(QRegExp(MIN_SEC_PATTERN)))
        self.stepToFixDelayInp.setToolTip(
            "Delay between toStep and toFixed calls.")
        self.stepToFixDelayInp.setText("05:00")

        self.contentLayout.addWidget(self.stepToFixDelayLabel, 1, 0, 1, 1)
        self.contentLayout.addWidget(self.stepToFixDelayInp, 1, 1, 1, 1)
        self.contentLayout.addWidget(self.stepToFixDelaySettingLabel, 1, 2, 1,
                                     1)

        self.setButton = QPushButton("Confirm")
        self.setButton.clicked.connect(self.confirm)
        self.setButton.setToolTip("Apply settings")
        self.contentLayout.addWidget(self.setButton, 3, 1, 1, 1)

        self.setLayout(self.contentLayout)
        self.confirm()
コード例 #28
0
def generateRegExpValidator(widget, expression):
    rx = QRegExp(expression)
    return QRegExpValidator(rx, widget)
コード例 #29
0
ファイル: fileassociations.py プロジェクト: nixjdm/spyder
 def set_regex_validation(self, regex):
     """Set the regular expression to validate content."""
     self._regex = regex
     self._reg = re.compile(regex, re.IGNORECASE)
     validator = QRegExpValidator(QRegExp(regex))
     self.lineedit.setValidator(validator)
コード例 #30
0
 def __init__(self, *args, **kwargs):
     super(ProbeBasic, self).__init__(*args, **kwargs)
     self.run_from_line_Num.setValidator(QRegExpValidator(QRegExp("[0-9]*")))
     self.dynatc_left.iniFilePrefix = "LEFT_"
     self.dynatc_right.iniFilePrefix = "RIGHT_"