【发布时间】:2021-05-23 20:17:10
【问题描述】:
我正在尝试设置一个 QIntValidator 来验证 QLineEdit 上的输入。这就是我所做的:
userInput = new QLineEdit("1");
userInput->setValidator(new QIntValidator ( 1, 20, this ) );
这似乎有效:它不允许输入任何字母。但是,我可以输入超出范围的0,我还可以输入21、39 和@987654326 等数字@,都超出了 1-20 的范围。基本上,我希望 QIntValidator 只允许输入 1-20 范围内的数字,但相反,我发现它允许所有小于 100 的非负数字输入(我也可以这样做00000。)
为什么 QIntValidator 没有按我的预期工作,我该如何解决?
【问题讨论】:
-
你有研究过这种效果吗?你发现了什么?
-
如果我读到了documentation 的权利,验证器不会阻止输入无效,而是可能 有效值(即
intermediate状态)。我假设这样的“中间”输入会在失去焦点的行编辑中被丢弃,但请自己尝试。
标签: c++ qt validation qlineedit