Qt的QValidator?

use*_*285 1 qt

我正在验证我的TextBox只能使用1-75之间的数字.我可以使用下面的代码来做到这一点:

QValidator *validator = new QIntValidator(1, 75, this);
QLineEdit *edit = new QLineEdit(this);
edit->setValidator(validator);
Run Code Online (Sandbox Code Playgroud)

但现在问题是它也需要零.我想避免零任何帮助表示赞赏.

ale*_*sdm 11

您当前没有验证:当您设置a时,QValidator您只是将字符过滤到可以组成有效输入的字符.

为了进行实际验证,您必须检查QLineEdit::hasAcceptableInput()返回true.

例如,在连接到textChanged()信号的插槽中,您可以根据acceptableInput属性的值启用/禁用提交数据的按钮,防止用户进一步使用无效值,和/或更改文本颜色(红色表示无效).

对于数值,您也可以使用a QSpinBox代替QLineEdit.您可以定义其范围(最小/最大),以及在编辑完成(有QSpinBox::setCorrectionMode)时该值无效的行为.