QT的QValidator怎么设置最小值

sno_guo 2012-05-18 11:50:31
大家好, 我想用 QValidator* 这里类来控制我的LineEdit控件的输入范围,
代码如下:
//新建一个widget,在构造函数中加入如下内容:

QValidator* validator = new QIntValidator( 200, 599, this );
QLineEdit* edit = new QLineEdit;
edit->setValidator( validator );

QHBoxLayout *mainLayout = new QHBoxLayout();
mainLayout->addWidget(edit);
setLayout(mainLayout);


然后编译,执行,当我输入600来测试最大值时,发现无法输入,说明是正常的。
可是当我输入123 的时候,发现也可以输入,但是我设置了最小值是200啊,怎么可以输入123呢,请教下各位,我怎么能限制我的最小值,谢谢!
...全文
841 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
songhuirong1 2012-05-18
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
谢谢,就是说我去new 一个 QLineEdit 然后,自己创建一个槽函数,当有数据变化时,在我自己的槽函数中处理,是这样吗?
[/Quote]
这个方法是可以达到你的目的的。在槽函数里进行if判断就行了。不知道有没有更好的方法呢?有的话,拿出来共享下。
sno_guo 2012-05-18
  • 打赏
  • 举报
回复
谢谢,就是说我去new 一个 QLineEdit 然后,自己创建一个槽函数,当有数据变化时,在我自己的槽函数中处理,是这样吗?
無_1024 2012-05-18
  • 打赏
  • 举报
回复
实例化 QLineEdit 然后正则表达式或者是值得判断
shen_wei 2012-05-18
  • 打赏
  • 举报
回复
这个你只能自己去实例化 QLineEdit了。。

QIntValidator( 0, 599, this ); 限制 0-599

好像最小只能是 0了。。你自己百度看看就能明白了。。。
资源下载链接为: https://pan.quark.cn/s/f989b9092fc5 在Qt开发中,对QLineEdit控件输入的数值进行限制是常见需求,能确保用户输入符合规定格式和范围。QLineEdit是Qt中用于接收单行文本的组件,但其本身无自动验证输入数据功能,需借助QValidator类来增强。QValidator可对输入数据验证,使其符合预期格式或范围,其子类QRegExpValidator利用正则表达式验证输入,正则表达式是能匹配复杂字符串模式的强大工具。 要实现限制功能,需包含以下头文件: 接着创建QLineEdit对象并为其设置QRegExpValidator。若要限制输入整数在1到100之间,可这样写: 其中,正则表达式[1-9]代表1到9的数字,[0-9]?表示0或1个0到9的数字,|100表示匹配100,这样QLineEdit就只能输入1到100的整数。 若需限制浮点数,如小数点后最多两位,数值在0.01到100.99之间,可调整正则表达式为: 该正则表达式允许小数点前0个或1个整数,小数点后1或2位数字,且特别处理了100和100.0的情况。 除QRegExpValidator外,还可结合QIntValidator或QDoubleValidator限制数值范围,这些类能直接设定最小值、最大值和步长,适用于无需复杂正则表达式的情况。通过QRegExpValidator和正则表达式,可灵活控制QLineEdit控件输入数据,使其美观准确,提升用户体验和数据准确性。实际项目中,可根据需求选择合适验证方式。InputLimit压缩包文件可能包含该实例完整代码和运行示例,可作学习参考。

16,818

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧