问题标签 [qvalidator]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
42 浏览

python-3.x - PyQt5 无法正确获取函数和类

嗨,需要帮助了解为什么不工作认为是概念性的,但我无法理解。

我有一些文件:

主.py:

输入gui.py:

检查状态.py:

main2.ui:

输入gui2.ui:

我从网上复制了这个例子:打开第一个窗口,按下按钮 C,打开新窗口,只能插入整数(QIntValidator),当尝试插入输入 QLineEdit 背景更改颜色时。

问题是我无法在外部文件上获取 check_state() 函数。要让它工作,我需要将它放在 main.py 文件中(添加 # to from checkstate import check_state 并删除 #### from def check_state on main.py)为什么我无法从外部文件中获取函数?

另一方面,为什么 QIntValidator 会阻止我的退格(退格)键盘键工作?

0 投票
1 回答
391 浏览

python - PyQT5:如何同时使用 QLineEdit:验证器和 InputMask?

我想同时使用 InputMask 和 Validator 以正确的形式获取日期。在下面的代码中,我使用 InputMask 以 DD.MM.YYYY 格式接收日期。我不知道如何限制它的每个部分(DD、MM 和 YYYY),因为现在用户可以输入 40.30.2020 并且理论上是正确的。

0 投票
1 回答
53 浏览

c++ - 如何编写将验证以下字符串的正则表达式?

我试过在 cpp 中遵循正则表达式^((T[X-Z]|R[X-Z])+?)(?:,\\s*|$)。它仅验证 TX。如果为空字符串,它应该是无效的,它也不应该接受数字

用户可以输入:

  1. 德克萨斯州
  2. 德克萨斯州,泰州
  3. 德克萨斯州、泰州、TZ、
  4. RX、RY、RZ
  5. 接收

它应该在所有情况下都有效。

0 投票
1 回答
106 浏览

python - 为什么 QRegExpValidator 总是返回 2

QRegExpValidator一直认为我的输入是Acceptable- 它不应该是。在 gui.py 中有一个QLineEdit名为 `

2无论我尝试什么,输出总是如此。我希望我输入任何内容,如果它是一个 3 位数字,则该函数返回 True(或 Acceptable)。我试图按照这里解释的这条路径我错过了什么?

0 投票
2 回答
117 浏览

python - ASCII 字符的 QValidator 保持无效

我正在尝试构建一个 lineEdit 来检查非 ascii 字符。我使用 regex101 测试了 RegEx,它按预期工作。[:ascii:]似乎是一个 PCRE,因此应该与 QtRegExp 一起使用,对吧?但是,我的 QValidator 子类总是返回QValidator.State.Invalid(除非 lineEdit 在返回时为空QValidator.State.Intermediate),即使 lineEdit 清楚地只包含 ASCII 字符。

这是验证器的代码:

这是我的自定义行编辑:

0 投票
1 回答
113 浏览

c++ - Qt RegExp 验证器 C++

我想创建一个验证用户输入的程序。我找到了一个验证输入是否正确的正则表达式。问题是该程序允许用户输入不属于正确输入的额外字符。例如,正确的输入是 23km,它允许用户输入我想要消除的 23rt 之类的东西。这是我的代码:

我最后试过return QValidator::Invalid;了,它根本不需要输入。

我想制作以下形式的东西:(23km 3m X 1km 4m)。

0 投票
1 回答
259 浏览

python - 使用 QDoubleValidator 限制 QLineEdit 输入并将值重置为最接近的可接受值

我想使用 QLineEdit 来获取用户输入的值。我想限制一个范围之间的输入,所以我应该使用 QDoubleValidator。我希望它能够工作,如果它们超过允许的值,它将文本设置为 top() 值,如果它们低于,则将其设置为 bottom() 值。

我研究了使用 textChanged、returnPressed 和 inputRejected 信号。我遇到问题的原因是,一旦我使用范围设置验证器,returnPressed 将不会进入他们在此处提到的 check_validator 函数。然后,我想也许我可以用输入拒绝信号来捕捉它,但由于某种原因,这似乎也不起作用。这是一些代码:

当窗口弹出时,我还收到一个属性错误,说“noneType”对象没有属性“exec”。我想我错过了如何正确关闭该窗口的步骤。

0 投票
1 回答
178 浏览

python - 空时如何让 QIntValidator() 调用editingFinished?

我有一个带有 QIntValidator 的 Line Edit 小部件:

此外,我将文本框的旧值存储在字典中:

我希望能够,当文本框为空时,如果用户在框外单击或按回车键,则将文本框中的文本替换为旧值:

不幸的是, QIntValidator() 似乎将空值视为无效,并且从不触发我的函数。有没有办法做我在这里寻找的东西?

0 投票
1 回答
43 浏览

python - 了解 QDoubleValidator 范围的行为

选项“顶部”和“底部”的规范似乎有一个奇怪的行为。以下回答的问题提供了一些有用的见解,但并不能解决所有问题。

使用代码:

输入框接受任何低于 100 的数字,但我希望只有低于 10 的数字......例如,99.55656 被接受就好了......

我想念什么?