我正在尝试设置一个QIntValidator来验证QLineEdit上的输入。这就是我所做的:
userInput = new QLineEdit("1");
userInput->setValidator(new QIntValidator ( 1, 20, this ) );
这似乎有效:它不允许输入任何字母。但是,我可以输入超出范围的0
,也可以输入超出1-20范围的数字,如21
、39
和80
。基本上,我预计QIntValidator只允许1-20范围内的数字输入,但相反,我发现它允许所有小于100的非负数字输入(我也可以做00000
。(
为什么QIntValidator没有像我预期的那样工作,我该如何修复它?
0
被接受为QValidator::Intermediate
状态,因为用户可能想要键入例如05
,这将是有效的。您将无法实际输入不需要的值。在您按下Return或从窗口小部件中移动焦点后,输入字段中有0
,值应该返回到原始值(好吧,至少旋转框的行为是这样的,不确定QLineEdit
(。