问题标签 [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.
qt5 - 如果我只想说标识符文件名,如何将 QRegexpValidator 附加到 QFileDialog?
这个问题很简单,在标题中。
谷歌搜索对此没有帮助。如何让 QFileDialog 在其保存名称字段上使用 QValidator?
谢谢。
qt - 识别 QLineEdit 是否失去焦点
在我的一个项目中,我有一系列QLineEdit
小部件,它们应该接受双数,它们位于一定范围内。由于某些原因我不能使用QDoubleSpinBox
.
现在我QDoubleValidator
用来检查我的号码是否在给定的范围内。不幸的是,只有在给editingFinished
时才会发出信号。QValidator
QValidator::Acceptable
现在假设,我可能有一系列这样的QLineEdit
小部件。在一个中,我输入了一个错误的数字,然后我将焦点切换到另一个小部件。用户在QLineEdit
.
相反,我想要的行为是将焦点设置到包含错误输入并发出警告的小部件上。
由于某些原因,我未能实现此功能。即使在我查阅了 Qt 文档之后。
这是我的完整代码。
ValidatedDoubleEditorWidget.h
ValidatedDoubleEditorWidget.cpp
测试运行程序.cpp
python - 使用某些验证器后如何重置 QValidator 以接受所有输入
我setValidator(QIntValidator)
在 PyQt 中使用过。如何重置此验证器以像以前一样接受所有输入?我想动态处理验证,这就是为什么......
python - 正确使用 QValidator
我使用验证器来过滤用户输入。通常我的验证器是这样工作的:
我是在网上看了一些例子后写的。但我只是注意到,如果我删除第二行的最后一部分:
代码的工作原理完全相同。我周围有几个这样的验证器。我想知道是否可以在没有我提到的部分的情况下使用它。例如:
这些有什么区别吗?如果有请解释并告诉我哪一个是更好的方法。
python - 通过 QValidator 验证可编辑的 QCombobox 输入是否是目录
在将可编辑的 QCombobox 输入添加到 QCombobox 之前,我尝试验证它是否是目录。
遗憾的是,它不能正常工作,因为当我按 Enter 时,每个输入仍会添加到组合框中。有什么建议么?
编辑:我也尝试在 QLineEdit 上使用验证器,如下所示:
也不行。
编辑:它有点工作......但是当我按下返回时“hasFocus”仍然是True,所以它只是接受输入,然后当然将它添加到组合框中。如果我去掉“if self._input.hasFocus():”如果我输入它不接受任何输入......只要粘贴一个完整的目录路径。所以我需要一种检查编辑是否完成然后检查它是否是目录的方法。据我了解,我只能通过 QValidator 在组合框中检查它......因为它会立即将输入添加到框中......在我可以以任何方式拦截它之前。
编辑:我确实为我的情况找到了解决方案。我只是放弃了整个验证器方法。这样做的目的是防止组合框在没有有效目录的情况下创建新项目......我现在所做的是在完成后通过利用 QLineEdit().editingFinished() 信号来验证输入. 创建新项目后,如果输入无效,我将再次删除它,并且它还让我有机会添加一个错误弹出窗口,告诉用户输入不是目录。
c++ - QIntValidator 在有效输入中返回中间值
我有一个QIntValidator(int min, int max, QWidget* parent)
设置,但它返回QValidator::Intermediate
的输入介于最小值和最大值之间(即有效)。
我正在使用这个 QIntValidator 来检查输入(整数)是否在最小值和最大值之间稳定。如果不是,则丢弃输入,将编辑器返回到之前的值。
假设最小值为 1,最大值为 2147483648。如果用户输入,例如数字 3,则返回 QValidator::Intermediate。这似乎是奇怪的行为。任何想法为什么会发生这种情况?
qt - 粘贴文本时如何让 QT 验证器正常工作?
我有一个 QT QRegExpValidator
(RegExpValidator
在 QML 中),它将我的文本输入限制为仅限字母数字内容。
但是,当用户将字符串粘贴到 myTextField
中时,有时这些字符串以换行符结尾,验证失败,因此字符串永远不会被粘贴。
我已经读过,实现该fixup
方法使您有机会清理字符串,以便它们与验证器一起正常工作。但是,这在粘贴时似乎不起作用 - 字符串仍然没有被粘贴。
我如何让它以我想要的方式工作?
我的代码如下所示:
实现LoginValidator
如下:
python - 将行编辑传递给上下文管理器以设置验证器
我正在尝试将小部件列表传递到 ca ontextmanager 中,我试图在其中使用 QDoubleValidators 设置它们。
我的初始代码如下:
基本上我有大量的 QLineEdits,我在其中设置了 2 个小数位的输入限制。
我不太确定 contextmanager 在这种情况下是否有帮助,但我正在尝试以下方法:
当我尝试将其运行为:
我遇到了几个错误,例如:AttributeError: TestValidator instance has no __call__ method #
即便如此,将小部件传递给上下文管理器是否是一个明智的主意?
(仅供参考,我的小部件/ ui 是从 qt 设计器创建的)
python - 从 QValidator 获得视觉反馈
我正在尝试使用QValidator
后代(实际上是在 PyQt5 中,但这不重要)来验证一系列行编辑。
一小段摘录是:
这如宣传的那样工作,但用户没有得到任何反馈,因为尝试输入“错误”字符只会丢弃它们。
QLineEdit.textChanged
除了挂钩信号并“手动”进行验证(即:不设置验证器,否则出错text
时不会改变并且不会发出信号)之外,我没有找到任何提供反馈的方法。首选的反馈是更改行编辑的边框颜色。
这在某种程度上违背了验证器本身的目的。似乎我遗漏了一些东西,因为我看不到如何从QValidator
.
处理此问题的“标准方法”是什么?
python - QIntValidator 的“底部”属性未在用户输入阶段执行
我是 PyQt5 的新手,并试图在 Python 和 PyQt5 中实现一些代码来验证 QLineEdit 字段的用户输入。
QIntValidator 'bottom' 整数值设置为 100,'top' 设置为 200。在字段中输入数据时,不能输入大于 200 的值,但可以输入小于 100 的值。我是否错过了一些步骤或误解了这个验证器的功能?这是我关于 stackoverflow 的第一个问题——希望我已经清楚地描述了这个问题。非常感谢任何帮助!