找回密码
 立即注册
收起左侧

怎么设置qwidget(比如lineedit)对键盘(比如回车)的响应?

7
回复
12058
查看
[复制链接]
累计签到:2 天
连续签到:1 天
来源: 2014-5-20 14:44:04 显示全部楼层 |阅读模式
4Qter豆
一个lineedit,我输入一个数,旁边有一个按钮(比如保存)。
我可以按按钮保存数据,也可以输入数据后回车键保存。
用事件么?

最佳答案

查看完整内容

你理解错了吧。 这里的意思是说,你设置了验证符,那么输入的字符串必须满足验证符,才能点击回车的。 比如QRegExp rx2("[0-9]{4}"); 这里需要是四个数字,其实你现在只能往lineEdit里面输入数字,其他输入不进去的,输入四个数字以后,按下回车是可以触发回车那个信号的。
回复

使用道具 举报

累计签到:1570 天
连续签到:1 天
2014-5-20 14:44:05 显示全部楼层
caiwei_cs 发表于 2014-5-21 14:44
是的,不过在我这里有些问题。就是如果我给lineedit加了validator 或者 inputmask ,就不能发送这个信号了 ...

你理解错了吧。

这里的意思是说,你设置了验证符,那么输入的字符串必须满足验证符,才能点击回车的。

比如QRegExp rx2("[0-9]{4}");

这里需要是四个数字,其实你现在只能往lineEdit里面输入数字,其他输入不进去的,输入四个数字以后,按下回车是可以触发回车那个信号的。
回复

使用道具 举报

尚未签到

2014-5-20 15:55:12 显示全部楼层
keyPressEvent

如果我没记错的话
回复

使用道具 举报

累计签到:2 天
连续签到:1 天
2014-5-20 16:58:12 显示全部楼层
Joey_Chan 发表于 2014-5-20 15:55
keyPressEvent

如果我没记错的话

能详细说一下么?是键盘事件么?我还没有看书看到。用的是什么类
回复

使用道具 举报

累计签到:7 天
连续签到:1 天
2014-5-20 17:39:35 显示全部楼层
caiwei_cs 发表于 2014-5-20 16:58
能详细说一下么?是键盘事件么?我还没有看书看到。用的是什么类

给lineedit装一个事件过滤器,过滤keyPressEvent,如果是回车则保存数据。不知道我的理解对不对,可以试试哈
回复

使用道具 举报

累计签到:1570 天
连续签到:1 天
2014-5-20 22:51:23 显示全部楼层
用事件系统可以实现。

其实QLineEdit类本身有个QLineEdit::returnPressed ()信号。关联这个信号,在槽函数里面进行保存操作即可。
回复

使用道具 举报

累计签到:2 天
连续签到:1 天
2014-5-21 14:44:24 显示全部楼层
本帖最后由 caiwei_cs 于 2014-5-21 14:45 编辑
yafeilinux 发表于 2014-5-20 22:51
用事件系统可以实现。

其实QLineEdit类本身有个QLineEdit::returnPressed ()信号。关联这个信号,在槽函数 ...

是的,不过在我这里有些问题。就是如果我给lineedit加了validator 或者 inputmask ,就不能发送这个信号了。

2)editingFinished():当return返回键被按下或者编辑框失去焦点时发射,需要注意的是如果有validator或者inputMask被设置,其信号只在满足此校验后设置发射。
3)returnPressed()此信号在returnkey或者enterkey被按下的时候。同样需要满足校验器。


QRegExp rx2("[0-9]{4}");    pRevalidator2 = new QRegExpValidator(rx2);    ui->lineEdit_4DA->setValidator(pRevalidator2);
现在问题就转化为,怎么让回车满足校验器或者inputmask?
也许可以参考
http://blog.sina.com.cn/s/blog_76df0d4501014581.html
但是我没看懂

回复

使用道具 举报

累计签到:2 天
连续签到:1 天
2014-5-27 20:35:33 显示全部楼层
本帖最后由 caiwei_cs 于 2014-5-27 20:47 编辑

可以了,谢谢啦。不容易啊啊。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了