关于QCalendarWidget的问题~~

yingwenzifu 2014-03-04 06:09:53
问题是这样的:

1.QCalendarWidget这个类的界面,用鼠标点击没什么问题;

2.在触摸屏上点击这个界面一次,QCalendarWidget会响应两次;

比如点击界面上的左右按钮改变月份,会连续改变两个月。

郁闷的是,继承这个QCalendarWidget类,不知道QCalendarWidget类是如何控制界面上的左右按钮的。
...全文
394 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
请叫我砖家 2014-03-06
  • 打赏
  • 举报
回复
引用 5 楼 u012628469 的回复:
[quote=引用 4 楼 yingwenzifu 的回复:] [quote=引用 3 楼 u012628469 的回复:] [quote=引用 2 楼 yingwenzifu 的回复:] [quote=引用 1 楼 u012628469 的回复:] 说实话,我没做过移动终端的,但是我在其他地方遇到过类似的问题(按钮按下一次,触发多次处理),是不是因为这个触摸屏太敏感的问题,有的时候就会有这种误读,你可以判断点击之后隔不到一秒再判断一次是真点击了,然后再触发calendar,这样可以减少由于误触或者其他影响造成的多次触发
我也是想这样做的,先判断是否真的点击了,不知道该如何判断啊,继承了QCaldendarWidget这个类,重新实现mousePressEvent()等鼠标函数,但是根本不能捕捉到鼠标信息,鼠标点击的事件被QCalendarWidget的子控件获取了。现在真是束手无策了。[/quote] 我刚才特意去看了看Calendar,我暂时也没有好办法,不过你最好确定一下到底是不是这个原因,重写mouserPressEvent除了按钮部分捕捉不到以外,其他地方好像都能捕捉到,你看看这些地方捕捉了是不是也是响应两次,如果不是的话肯定就是别的原因了。。。。[/quote] 谢谢你啦 问题解决了。 是这样做的: 1.先把QCalendarWidget的子控件,通过installEventFilter()进行注册; 2.children()这个函数可以获得QCalendarWidget的所有子控件的指针; 3.重新实现eventFilter()函数,可以获取所有子控件的鼠标事件。[/quote] 呵呵,你比我想的多呀,我昨天也想到这些了,但是不知道怎么找到子控件,所以就没给你说,原来是用children(),涨姿势了,我也是刚接触没多久,共勉共勉[/quote] 要是觉得可以就把贴结了分儿给我呗
请叫我砖家 2014-03-06
  • 打赏
  • 举报
回复
引用 4 楼 yingwenzifu 的回复:
[quote=引用 3 楼 u012628469 的回复:] [quote=引用 2 楼 yingwenzifu 的回复:] [quote=引用 1 楼 u012628469 的回复:] 说实话,我没做过移动终端的,但是我在其他地方遇到过类似的问题(按钮按下一次,触发多次处理),是不是因为这个触摸屏太敏感的问题,有的时候就会有这种误读,你可以判断点击之后隔不到一秒再判断一次是真点击了,然后再触发calendar,这样可以减少由于误触或者其他影响造成的多次触发
我也是想这样做的,先判断是否真的点击了,不知道该如何判断啊,继承了QCaldendarWidget这个类,重新实现mousePressEvent()等鼠标函数,但是根本不能捕捉到鼠标信息,鼠标点击的事件被QCalendarWidget的子控件获取了。现在真是束手无策了。[/quote] 我刚才特意去看了看Calendar,我暂时也没有好办法,不过你最好确定一下到底是不是这个原因,重写mouserPressEvent除了按钮部分捕捉不到以外,其他地方好像都能捕捉到,你看看这些地方捕捉了是不是也是响应两次,如果不是的话肯定就是别的原因了。。。。[/quote] 谢谢你啦 问题解决了。 是这样做的: 1.先把QCalendarWidget的子控件,通过installEventFilter()进行注册; 2.children()这个函数可以获得QCalendarWidget的所有子控件的指针; 3.重新实现eventFilter()函数,可以获取所有子控件的鼠标事件。[/quote] 呵呵,你比我想的多呀,我昨天也想到这些了,但是不知道怎么找到子控件,所以就没给你说,原来是用children(),涨姿势了,我也是刚接触没多久,共勉共勉
yingwenzifu 2014-03-05
  • 打赏
  • 举报
回复
引用 1 楼 u012628469 的回复:
说实话,我没做过移动终端的,但是我在其他地方遇到过类似的问题(按钮按下一次,触发多次处理),是不是因为这个触摸屏太敏感的问题,有的时候就会有这种误读,你可以判断点击之后隔不到一秒再判断一次是真点击了,然后再触发calendar,这样可以减少由于误触或者其他影响造成的多次触发
我也是想这样做的,先判断是否真的点击了,不知道该如何判断啊,继承了QCaldendarWidget这个类,重新实现mousePressEvent()等鼠标函数,但是根本不能捕捉到鼠标信息,鼠标点击的事件被QCalendarWidget的子控件获取了。现在真是束手无策了。
请叫我砖家 2014-03-05
  • 打赏
  • 举报
回复
说实话,我没做过移动终端的,但是我在其他地方遇到过类似的问题(按钮按下一次,触发多次处理),是不是因为这个触摸屏太敏感的问题,有的时候就会有这种误读,你可以判断点击之后隔不到一秒再判断一次是真点击了,然后再触发calendar,这样可以减少由于误触或者其他影响造成的多次触发
yingwenzifu 2014-03-05
  • 打赏
  • 举报
回复
引用 3 楼 u012628469 的回复:
[quote=引用 2 楼 yingwenzifu 的回复:] [quote=引用 1 楼 u012628469 的回复:] 说实话,我没做过移动终端的,但是我在其他地方遇到过类似的问题(按钮按下一次,触发多次处理),是不是因为这个触摸屏太敏感的问题,有的时候就会有这种误读,你可以判断点击之后隔不到一秒再判断一次是真点击了,然后再触发calendar,这样可以减少由于误触或者其他影响造成的多次触发
我也是想这样做的,先判断是否真的点击了,不知道该如何判断啊,继承了QCaldendarWidget这个类,重新实现mousePressEvent()等鼠标函数,但是根本不能捕捉到鼠标信息,鼠标点击的事件被QCalendarWidget的子控件获取了。现在真是束手无策了。[/quote] 我刚才特意去看了看Calendar,我暂时也没有好办法,不过你最好确定一下到底是不是这个原因,重写mouserPressEvent除了按钮部分捕捉不到以外,其他地方好像都能捕捉到,你看看这些地方捕捉了是不是也是响应两次,如果不是的话肯定就是别的原因了。。。。[/quote] 谢谢你啦 问题解决了。 是这样做的: 1.先把QCalendarWidget的子控件,通过installEventFilter()进行注册; 2.children()这个函数可以获得QCalendarWidget的所有子控件的指针; 3.重新实现eventFilter()函数,可以获取所有子控件的鼠标事件。
请叫我砖家 2014-03-05
  • 打赏
  • 举报
回复
引用 2 楼 yingwenzifu 的回复:
[quote=引用 1 楼 u012628469 的回复:] 说实话,我没做过移动终端的,但是我在其他地方遇到过类似的问题(按钮按下一次,触发多次处理),是不是因为这个触摸屏太敏感的问题,有的时候就会有这种误读,你可以判断点击之后隔不到一秒再判断一次是真点击了,然后再触发calendar,这样可以减少由于误触或者其他影响造成的多次触发
我也是想这样做的,先判断是否真的点击了,不知道该如何判断啊,继承了QCaldendarWidget这个类,重新实现mousePressEvent()等鼠标函数,但是根本不能捕捉到鼠标信息,鼠标点击的事件被QCalendarWidget的子控件获取了。现在真是束手无策了。[/quote] 我刚才特意去看了看Calendar,我暂时也没有好办法,不过你最好确定一下到底是不是这个原因,重写mouserPressEvent除了按钮部分捕捉不到以外,其他地方好像都能捕捉到,你看看这些地方捕捉了是不是也是响应两次,如果不是的话肯定就是别的原因了。。。。

16,173

社区成员

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

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