问题标签 [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 回答
207 浏览

qt5 - 如果我只想说标识符文件名,如何将 QRegexpValidator 附加到 QFileDialog?

这个问题很简单,在标题中。

谷歌搜索对此没有帮助。如何让 QFileDialog 在其保存名称字段上使用 QValidator?

谢谢。

0 投票
2 回答
3900 浏览

qt - 识别 QLineEdit 是否失去焦点

在我的一个项目中,我有一系列QLineEdit小部件,它们应该接受双数,它们位于一定范围内。由于某些原因我不能使用QDoubleSpinBox.

现在我QDoubleValidator用来检查我的号码是否在给定的范围内。不幸的是,只有在给editingFinished时才会发出信号。QValidatorQValidator::Acceptable

现在假设,我可能有一系列这样的QLineEdit小部件。在一个中,我输入了一个错误的数字,然后我将焦点切换到另一个小部件。用户在QLineEdit.

相反,我想要的行为是将焦点设置到包含错误输入并发出警告的小部件上。

由于某些原因,我未能实现此功能。即使在我查阅了 Qt 文档之后。

这是我的完整代码。

ValidatedDoubleEditorWidget.h

ValidatedDoubleEditorWidget.cpp

测试运行程序.cpp

0 投票
1 回答
326 浏览

python - 使用某些验证器后如何重置 QValidator 以接受所有输入

setValidator(QIntValidator)在 PyQt 中使用过。如何重置此验证器以像以前一样接受所有输入?我想动态处理验证,这就是为什么......

0 投票
1 回答
351 浏览

python - 正确使用 QValidator

我使用验证器来过滤用户输入。通常我的验证器是这样工作的:

我是在网上看了一些例子后写的。但我只是注意到,如果我删除第二行的最后一部分:

代码的工作原理完全相同。我周围有几个这样的验证器。我想知道是否可以在没有我提到的部分的情况下使用它。例如:

这些有什么区别吗?如果有请解释并告诉我哪一个是更好的方法。

0 投票
1 回答
667 浏览

python - 通过 QValidator 验证可编辑的 QCombobox 输入是否是目录

在将可编辑的 QCombobox 输入添加到 QCombobox 之前,我尝试验证它是否是目录。

遗憾的是,它不能正常工作,因为当我按 Enter 时,每个输入仍会添加到组合框中。有什么建议么?

编辑:我也尝试在 QLineEdit 上使用验证器,如下所示:

也不行。

编辑:它有点工作......但是当我按下返回时“hasFocus”仍然是True,所以它只是接受输入,然后当然将它添加到组合框中。如果我去掉“if self._input.hasFocus():”如果我输入它不接受任何输入......只要粘贴一个完整的目录路径。所以我需要一种检查编辑是否完成然后检查它是否是目录的方法。据我了解,我只能通过 QValidator 在组合框中检查它......因为它会立即将输入添加到框中......在我可以以任何方式拦截它之前。

编辑:我确实为我的情况找到了解决方案。我只是放弃了整个验证器方法。这样做的目的是防止组合框在没有有效目录的情况下创建新项目......我现在所做的是在完成后通过利用 QLineEdit().editingFinished() 信号来验证输入. 创建新项目后,如果输入无效,我将再次删除它,并且它还让我有机会添加一个错误弹出窗口,告诉用户输入不是目录。

0 投票
1 回答
979 浏览

c++ - QIntValidator 在有效输入中返回中间值

我有一个QIntValidator(int min, int max, QWidget* parent)设置,但它返回QValidator::Intermediate的输入介于最小值和最大值之间(即有效)。

我正在使用这个 QIntValidator 来检查输入(整数)是否在最小值和最大值之间稳定。如果不是,则丢弃输入,将编辑器返回到之前的值。

假设最小值为 1,最大值为 2147483648。如果用户输入,例如数字 3,则返回 QValidator::Intermediate。这似乎是奇怪的行为。任何想法为什么会发生这种情况?

0 投票
1 回答
698 浏览

qt - 粘贴文本时如何让 QT 验证器正常工作?

我有一个 QT QRegExpValidatorRegExpValidator在 QML 中),它将我的文本输入限制为仅限字母数字内容。

但是,当用户将字符串粘贴到 myTextField中时,有时这些字符串以换行符结尾,验证失败,因此字符串永远不会被粘贴。

我已经读过,实现该fixup方法使您有机会清理字符串,以便它们与验证器一起正常工作。但是,这在粘贴时似乎不起作用 - 字符串仍然没有被粘贴。

我如何让它以我想要的方式工作?

我的代码如下所示:

实现LoginValidator如下:

0 投票
1 回答
50 浏览

python - 将行编辑传递给上下文管理器以设置验证器

我正在尝试将小部件列表传递到 ca ontextmanager 中,我试图在其中使用 QDoubleValidators 设置它们。

我的初始代码如下:

基本上我有大量的 QLineEdits,我在其中设置了 2 个小数位的输入限制。

我不太确定 contextmanager 在这种情况下是否有帮助,但我正在尝试以下方法:

当我尝试将其运行为:

我遇到了几个错误,例如:AttributeError: TestValidator instance has no __call__ method #

即便如此,将小部件传递给上下文管理器是否是一个明智的主意?

(仅供参考,我的小部件/ ui 是从 qt 设计器创建的)

0 投票
3 回答
1553 浏览

python - 从 QValidator 获得视觉反馈

我正在尝试使用QValidator后代(实际上是在 PyQt5 中,但这不重要)来验证一系列行编辑。

一小段摘录是:

这如宣传的那样工作,但用户没有得到任何反馈,因为尝试输入“错误”字符只会丢弃它们。

QLineEdit.textChanged除了挂钩信号并“手动”进行验证(即:设置验证器,否则出错text时不会改变并且不会发出信号)之外,我没有找到任何提供反馈的方法。首选的反馈是更改行编辑的边框颜色。

这在某种程度上违背了验证器本身的目的。似乎我遗漏了一些东西,因为我看不到如何从QValidator.

处理此问题的“标准方法”是什么?

0 投票
0 回答
482 浏览

python - QIntValidator 的“底部”属性未在用户输入阶段执行

我是 PyQt5 的新手,并试图在 Python 和 PyQt5 中实现一些代码来验证 QLineEdit 字段的用户输入。

QIntValidator 'bottom' 整数值设置为 100,'top' 设置为 200。在字段中输入数据时,不能输入大于 200 的值,但可以输入小于 100 的值。我是否错过了一些步骤或误解了这个验证器的功能?这是我关于 stackoverflow 的第一个问题——希望我已经清楚地描述了这个问题。非常感谢任何帮助!