QT 中的Event事件函数
Event函数是一个Virtual Protected函数,它响应于用户触发的事件,事件多种多类,可以参考help帮助文档。
之所以要提到它,是因为我需要实现一个实时显示鼠标坐标的功能,网上实现的方式都是使用setmousetracking()
,但是对于我这种情况来说,这并不能实现,我在一篇博客上,也恰好看到了博主跟我同样的问题。
http://lps-683.iteye.com/blog/2260091
博主是使用的事件过滤器,但是我在实验过后,并没有使用博主的方法(我木有搞成功),于是我在试验鼠标移动是否触发事件时,发现了在event函数中能够响应鼠标移动的事件,所以据此,我采用了另外一种情况。
那就是,首先,设置setmousetracking(true)
,开启鼠标跟踪。第二,构造event事件,判断当前的鼠标坐标与先前的坐标是否不同,以确认是否发生了改变,以免重复操作。
2017年5月18日11:28:02
我使用setmousetracking
不成功,因为之前使用的界面类是QTabWidget
,但是转换为QStackedWidget
后,即可使用setmousetracking
进行鼠标的实时跟踪了。
代码中,为何加入一个“i”来累加呢?
不加这段代码,将会被判断程序出错,可以实际试试。我调试时的错误:
我发现这可能是因为UI的界面的创造时间位于event函数被建立起来之后,所以在event里直接调用界面,此时传送字符串将引发内存泄露的危害,造成程序崩溃。
本文标题:QT 中的Event事件函数
文章作者:小师
发布时间:2017-01-16
最后更新:2022-05-04
原始链接:chunlife.top/2017/01/16/QT 中的Event事件函数/
版权声明:本站所有文章均采用知识共享署名4.0国际许可协议进行许可