QLineEdit没有小数点

use*_*942 0 regex qt qlineedit qregularexpression qvalidator

我希望QLineEdit只接受没有任何小数的数字.它应该接受'456'而不是'456.3434'.它不应该允许小数.任何人都可以给出一些指示,我该怎么做.

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

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

谢谢

vah*_*cho 5

您可以尝试以下验证器:

QLineEdit le;
le.setValidator(new QRegExpValidator(QRegExp("[0-9]+")));
le.show();
Run Code Online (Sandbox Code Playgroud)

UPDATE

要允许以指数形式输入,您可以尝试这样做:

le.setValidator(new QRegExpValidator( QRegExp("[0-9]+e[0-9]+")));
Run Code Online (Sandbox Code Playgroud)