为什么我的 QIntValidator 允许输入不在我指定的范围内?
Why does my QIntValidator allow inputs not in my specified range?
我正在尝试设置 QIntValidator 来验证 QLineEdit 上的输入。这就是我所做的:
userInput = new QLineEdit("1");
userInput->setValidator(new QIntValidator ( 1, 20, this ) );
这似乎有效:它不允许输入任何字母。但是,我可以输入超出范围的 0
,我也可以输入数字,例如 21
, 39
和 80
,都超出了 1-20 的范围。基本上,我希望 QIntValidator 只允许 1-20 范围内的数字输入,但是,相反,我发现它允许所有小于 100 的非负数字输入(我也可以做 00000
.)
为什么 QIntValidator 没有像我预期的那样工作,我该如何解决?
0
被接受为 QValidator::Intermediate
状态,因为用户可能打算键入例如05
,这是有效的。您实际上无法 输入 不需要的值。在您按 Return 或将焦点从小部件移开后,输入字段中有 0
,值应该 return 到原始值(好吧,至少 spinboxes 是这样的,不确定 QLineEdit
).
我正在尝试设置 QIntValidator 来验证 QLineEdit 上的输入。这就是我所做的:
userInput = new QLineEdit("1");
userInput->setValidator(new QIntValidator ( 1, 20, this ) );
这似乎有效:它不允许输入任何字母。但是,我可以输入超出范围的 0
,我也可以输入数字,例如 21
, 39
和 80
,都超出了 1-20 的范围。基本上,我希望 QIntValidator 只允许 1-20 范围内的数字输入,但是,相反,我发现它允许所有小于 100 的非负数字输入(我也可以做 00000
.)
为什么 QIntValidator 没有像我预期的那样工作,我该如何解决?
0
被接受为 QValidator::Intermediate
状态,因为用户可能打算键入例如05
,这是有效的。您实际上无法 输入 不需要的值。在您按 Return 或将焦点从小部件移开后,输入字段中有 0
,值应该 return 到原始值(好吧,至少 spinboxes 是这样的,不确定 QLineEdit
).