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

第三版源码第六章鼠标事件

3
回复
6445
查看
[复制链接]
累计签到:12 天
连续签到:1 天
来源: 2017-8-31 16:44:25 显示全部楼层 |阅读模式
4Qter豆
在Qt Creator第三版源码6-3,mymouseevent工程中,如果在TextEdit中点击鼠标右键,那鼠标指针会变成自定义图标,但是释放后不会恢复默认鼠标指针模式,请问是什么原因。按理说程序中仅仅对Widget部件做了鼠标事件处理,并没有涉及到TextEdit中鼠标事件处理,在TextEdit中右击鼠标应该和左击鼠标一样默认处理才对。

最佳答案

查看完整内容

应该是和TextEdit的ContextMenuEvent冲突了,你加的事件过滤器就把它屏蔽了。TextEdit只是获取纯文本输入的话这样就行了,要实现编辑之类的最好自定义一个。
回复

使用道具 举报

累计签到:133 天
连续签到:1 天
2017-8-31 16:44:26 显示全部楼层
应该是和TextEdit的ContextMenuEvent冲突了,你加的事件过滤器就把它屏蔽了。TextEdit只是获取纯文本输入的话这样就行了,要实现编辑之类的最好自定义一个。
回复

使用道具 举报

累计签到:29 天
连续签到:1 天
2017-9-1 16:16:11 显示全部楼层
本帖最后由 Michelle_hxy 于 2017-9-1 16:26 编辑

我也刚学到这部分 只不过我是跟着本站内精品教程板块学的
看了一下Qt creator 第三版第六章教程
教程中只是定义了鼠标按下的event,并定义了按下右键会变成自定义的图标。
你说的释放鼠标后,没有恢复,是不是因为没有定义mouseReleaseEvent或者mouseReleaseEvent有问题啊

之前自己的程序是在鼠标键按下的时候,button上显示鼠标所在的坐标位置。现在我改成按鼠标左键是显示坐标,按右键是显示(100,200),释放鼠标后恢复到(0,0),是正常的。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

累计签到:12 天
连续签到:1 天
2017-9-4 10:51:59 显示全部楼层
Michelle_hxy 发表于 2017-9-1 16:16
我也刚学到这部分 只不过我是跟着本站内精品教程板块学的
看了一下Qt creator 第三版第六章教程
教程中只 ...

直接用源码来测试的,你没弄明白我的意思。我指的是在窗口其他部分测试都是正常的,但是在TextEdit部件中测试鼠标的右键单击跟释放就出问题了,鼠标右击能变成指定图标,但是释放就不能回到原来默认图标。你跑一下源码就知道什么意思了。如果是在TextEdit部件中右击鼠标后释放,感觉是TextEdit部件阻止了自定义的mouseReleaseEvent()函数的执行。我直接加了个事件过滤器,在TextEdit部件中右击的时候,直接返回true,事件不在传给Widget的右击事件处理函数,这样在TextEdit中右击鼠标指针也不会变化。但是这样我不知道会不会对TextEdit原来默认的鼠标右击事件处理函数造成什么不好的影响。
回复

使用道具 举报

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

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