为什么我的QIntValidator允许不在我指定范围内的输入



我正在尝试设置一个QIntValidator来验证QLineEdit上的输入。这就是我所做的:

userInput = new QLineEdit("1");
userInput->setValidator(new QIntValidator ( 1, 20, this ) );

这似乎有效:它不允许输入任何字母。但是,我可以输入超出范围的0,也可以输入超出1-20范围的数字,如213980。基本上,我预计QIntValidator只允许1-20范围内的数字输入,但相反,我发现它允许所有小于100的非负数字输入(我也可以做00000。(

为什么QIntValidator没有像我预期的那样工作,我该如何修复它?

0被接受为QValidator::Intermediate状态,因为用户可能想要键入例如05,这将是有效的。您将无法实际输入不需要的值。在您按下Return或从窗口小部件中移动焦点后,输入字段中有0,值应该返回到原始值(好吧,至少旋转框的行为是这样的,不确定QLineEdit(。

相关内容

  • 没有找到相关文章

最新更新