门户
书籍
教程
论坛
问答
下载
签到
个人空间
帐号
自动登录
找回密码
密码
登录
立即注册
账号
自动登录
找回密码
密码
登录
立即注册
请绘制轨迹完成人机验证
由vaptcha提供技术支持
登录
注册
搜索
搜索
搜索
热搜
qml
quick
串口
输入中文
数据库
arm
百度地图
qt聊天
QT安装
安装
多窗口
中文乱码
聊天
局域网
鼠标
QT
图片
乱码
rs485通讯
多线程
android
多文档编辑器
本版
用户
本版
用户
【HUX】问题互助平台
博客
动态
好友
帖子
收藏
道具
勋章
任务
淘帖
动态
日志
相册
分享
记录
留言板
群组
门户
导读
排行榜
设置
我的收藏
退出
Qt开源社区
›
精华区(请在“有问必答”发帖)
›
有问必答
›
程序调试
›
关于限制QLineEdit的输入范围
发布主题
返回列表
关于限制QLineEdit的输入范围
5
回复
11707
查看
[复制链接]
mapstar
当前离线
积分
37
mapstar
累计签到:3 天
连续签到:1 天
来源:
2014-6-19 19:52:42
显示全部楼层
|
阅读模式
1
Qter豆
本帖最后由 mapstar 于 2014-6-19 21:03 编辑
QLineEdit中要求输入“度分秒”格式的角度值,具体为ddd.mmssssssss,小数点前为‘度’(0~365),小数点后两位为‘分’(0~59),再后面是‘秒’(0~5999999999),‘分’不能等于或大于60,‘秒’也一样。如输入23.5959999999合法,输入123.
61
345455不合法,输入23.59
60
292929也不合法。请问如何实现呢?
最佳答案
begboy
查看完整内容
mapstar,你好: 从我们以往的做法如下: 第一种方式(较苯但看得清本质):对已完成的QLineEdit得到的QString进行语法分析,包括 1) 是否有非数字和非"."的其他字符,如是直接提醒用户输入不合法; 2) 如符合1),继续检查"."是否在第1位或最后1位,如是直接提醒用户输入不合法; 3) 如符合上述2点,以"."为分隔符分拆QString为两部分,将前后两部分转换成Qint,比较是否符合 你的格式数值范围规定。 第二种方式(快速): ...
相关帖子
如何 界面上的 某几个控件自动定时刷新
摄像头采集的视频和QT的GUI显示到LCD的不同显示层,该如何...
Qt creator构建和qt库编译安装
如何通过QT获取linux命令行结果(注:带有管道的命令)
MacOS10.12如何安装Qt5.8?
安装qt插件之后VS2015如何进行网络编程?
如何保存QGraphicsScene的所有item到本地文件中
QML中如何添加一条动态线段
QGraphicsItemAnimation如何串行的显示动画
用vs装qt怎么创建两个qt项目,socket如何在两个界面传递?
将几个按钮放到verticalLayout里面如何调整,按钮的宽度
qml下如何 使用for循环出多个Text控件或Slider控件
双向属性绑定通过ui用C++实现如何做
qml在安卓中如何切换窗口?
Qt WebEngine示例程序的浏览器,如何播放flash
给l控件英文字体指定大小,拿到开发板上加参数-fn unifont...
QML:TableView 行委托rowdelegate中的项目如何聚焦?
如何重绘直线
qt+vs 如何获取exe的版本号?
qml下如何使用FOR循环出ListModel中的数据?
回复
使用道具
举报
begboy
当前离线
积分
49
begboy
尚未签到
2014-6-19 19:52:43
显示全部楼层
mapstar,你好:
从我们以往的做法如下:
第一种方式(较苯但看得清本质):对已完成的QLineEdit得到的QString进行语法分析,包括
1) 是否有非数字和非"."的其他字符,如是直接提醒用户输入不合法;
2) 如符合1),继续检查"."是否在第1位或最后1位,如是直接提醒用户输入不合法;
3) 如符合上述2点,以"."为分隔符分拆QString为两部分,将前后两部分转换成Qint,比较是否符合
你的格式数值范围规定。
第二种方式(快速):请使用正规式,可参考C语言的sscanf()函数;
第三种方法(复杂点但最好): 接管QLineEdit录入的信号槽,一输入非数字非"."立即进行友好提醒;
当录入"."时,判断前部分是否符合度(0~365)范围,不是立即进行友好提醒并删除最后1位字符录入;
当录入"."后,判断后部分是否符合‘分’(0~59)和‘秒’(0~5999999999)范围,不是立即进行友好提醒并删除最后1位字符录入;
当录入回退或删除键是,重新递归判断,不符合要求立即进行友好提醒录入的格式。
祝好运!
begboy
回复
使用道具
举报
mapstar
当前离线
积分
37
mapstar
累计签到:3 天
连续签到:1 天
2014-6-20 23:04:17
显示全部楼层
感谢begboy,回复太详细了
回复
使用道具
举报
kidding
当前离线
积分
29
kidding
累计签到:1 天
连续签到:1 天
2014-6-22 22:38:33
显示全部楼层
好像还有一个方法,QRegExp,看看assistant吧
回复
使用道具
举报
begboy
当前离线
积分
49
begboy
尚未签到
2014-6-23 12:38:00
显示全部楼层
不客气。
能帮上忙是件好事。
begboy
回复
使用道具
举报
mapstar
当前离线
积分
37
mapstar
累计签到:3 天
连续签到:1 天
2014-6-23 16:43:00
显示全部楼层
kidding 发表于 2014-6-22 22:38
好像还有一个方法,QRegExp,看看assistant吧
嗯,我已试验成功,用validator和QRegExp
回复
使用道具
举报
返回列表
发表新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满)
我知道了