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

c++ - QDoubleValidator 不工作?

我正在尝试在 Qt 4.2 的行编辑框中应用验证器,但它不起作用:

或者

无论哪种方式,我仍然可以输入我想要的任何值。

但如果我切换到QIntValidator,它的工作原理!

所以我去谷歌搜索了一下,很多人曾经遇到过同样的问题。它是一个错误吗?或者我应该做一些其他的设置?

0 投票
1 回答
1441 浏览

c++ - 从 QLineEdit::textEdited() 内部获取编辑前的文本

当我收到QLineEdit::textEdited()信号时,我能看到编辑前的文本吗?我需要比较编辑前的文本和编辑后的文本。

textEdited()信号只有一个参数,即新文本。调用QLineEdit::text()还会返回新文本。

现在我只能想到将旧文本保存在 QString 中,并在每次进行编辑时更新该 QString,但是我需要考虑程序更改(通过 进行QLineEdit::setText())。

或者是否有另一种方法来拦截文本更改(也许通过验证器),这将允许我同时在更改之前和更改之后获取文本?最好仅用于用户更改(非编程)。

0 投票
1 回答
2520 浏览

qt - 以编程方式验证 QLineEdit

我有QLineEdit一个QDoubleValidator,调用QDoubleValidator::setRange不会验证QLineEdit.
我如何以编程方式验证(通过鼠标工作聚焦和不聚焦)

这是我继承的代码QDoubleValidator

我继承的代码QLineEdit

当我打电话DoubleLineEdit::setRange()时,当前的文本DoubleLineEdit没有经过验证和修复。

使用此代码,edit->text()仍然是 100,我希望它自动更改为 10。

我已经实现了一个工作DoubleLineEdit::validate方法:

但这更像是一个技巧,也许有更好的解决方案。

0 投票
2 回答
7050 浏览

qt - 在 QTableView 中验证用户输入

我有一个QTableView并且我想验证用户输入。如果用户在 的单元格中插入无效值QTableView,我想突出显示该单元格并禁用QPushButton.

我怎样才能做到这一点?我可以使用QValidator吗?

0 投票
2 回答
2841 浏览

c++ - QDoubleValidator 接受多个小数点

我正在QDoubleValidator为我的QLineEdit. 应用程序语言环境(在 QtCreator 中设置)是QLocale::German.

现在,当我输入一个有效的双精度(使用点或逗号作为小数分隔符)写入 textedit 以及将字符串转换为浮点数时,效果非常好。但验证器还允许我编写带有多个小数分隔符的内容。字符串喜欢123.567,890,,03.4...得到验证,但不能转换为浮点数。

有没有办法告诉QDoubleValidator只验证数而不仅仅是没有字母字符的字符串?

我基本上想要一个验证器,它只验证字符串,可以使用默认语言环境或德语语言环境转换为浮点数。

0 投票
1 回答
841 浏览

regex - 没有小数点的 QLineEdit

我希望 QLineEdit 只接受没有任何小数的数字。例如,它应该接受“456”但不接受“456.3434”。即它根本不应该允许小数。任何人都可以给出一些指示,我该怎么做。

我尝试使用 QIntValidator,但它仍然允许输入小数点,当我从 QLinEdit 转换文本时,它返回零(如文档所述,如果转换失败,它将返回零)。

我也尝试使用QRegExpValidator(QRegExp(“[0-9]”),但它只允许一个数字。最大数字没有限制,我如何指定QRegExp最小值为0,最大值为未定义,如果QRegExpValidator 是唯一的实现方法吗?

谢谢

0 投票
0 回答
99 浏览

python - pyqt - 在验证器中包含 NoneType?

我正在为 qlineedit 小部件添加双重验证器。但实际上该行可能是空的,即数据是 NoneType。但是在这种情况下,我不希望验证器弹出警告,例如:

请输入 0.000 到 10000.000 之间的值

添加 Validator 时,有什么方法可以将 NoneType 添加为排除实例?

非常感谢!

0 投票
1 回答
1534 浏览

python - QValidator 修复问题

以下是我验证帐户代码并以特定间隔添加破折号的代码。一个示例帐户代码是140-100-1000-6610-543。该代码采用正则表达式:\d{3}-\d{3}-\d{4}-\d{4}-\d{3]并允许用户输入数字,并且在正则表达式中有破折号的地方,它为用户放置破折号。或者更确切地说,它应该。在我们的生产服务器上 (('Qt version:', '4.8.1'), ('SIP version:', '4.13.2'), ('PyQt version:', '4.9.1')) 它确实有效. 我们的开发服务器升级到 ('Qt version:', '4.8.6'), ('SIP version:', '4.15.5'), ('PyQt version:', '4.10.4')不在那里工作。

在每台服务器上,我输入140. 在生产(旧版本)上,行编辑值更改为140-. 在较新版本的开发服务器上,它不会添加破折号。

如果您看到我的问题,请告诉我,如果这是 PyQt 问题或 Qt 问题,请告诉我。

0 投票
1 回答
130 浏览

regex - QLineEdit:如何防止用户输入星号(*)?

我在我的应用程序中使用 QLineEdit。我想阻止用户在文本的任何地方输入“*”。我尝试使用 QRegExpValidator 但无法设置正确的正则表达式。请帮忙。

0 投票
1 回答
6333 浏览

c++ - 带有 QValidator 的 QLineEdit:无论输入有效性如何,都对编辑完成做出反应?

QLineEdit当用户完成编辑时发出一个信号QLineEdit::editingFinished,例如按下回车键。但是,如果设置了验证器或输入掩码,则editingFinished只有在输入有效时才会发出。

但是,无论输入的有效性如何,我如何对用户完成编辑做出反应?我是否必须手动检查输入、返回、小部件失去焦点等?

这样做的原因:我想创建一个自定义小部件来使用QDoubleValidator. 当用户完成编辑并且输入无效(范围错误,空文本,...)时,我想将其重置为某个有效的默认值。像这样的东西: