概述
-
事件用起来比信号槽要简单
-
事件处理的流程:当有一个事件如鼠标双击事件被触发,则会在return app.exec();中监测到,它会把事件转换成一个对象,将对象传递给event()函数,这个函数不会立即处理,而是给了事件处理器(类似于swatch(事件对象a),从而调用响应的事件处理函数)。
-
如果一个控件需要接收鼠标点击事件或者其他事件,那么就必须重写一个类,继承某种控件,并在ui界面中将控件提升为该类,然后在类的.cpp文件中重写事件处理函数
-
所有的事件处理函数全部都是虚函数,需要重新实现(返回值,函数名,函数参数都不能改变),如果改变了就成了自己定义的函数而不是虚函数了。另外,事件处理函数都是保护类型的,最好有protected,虽然写public也不会报错。
-
QMouseEvent主要代表着鼠标事件的一些具体属性,如双击,按下,抬起,移动,xy坐标等,
-
当获取到坐标时,坐标是一个int类型,如需要转换到str类型,则可以按照如下方式进行格式化。
-
如果鼠标左键按下或者右键按下都可以在任何一个函数下进行判断:
-
对于鼠标事件,要想一进来就有效,则要在控件的构造函数中做设定。(该控件是自定义控件)
-
一个东西,你传给我,我如果接收了,就不会再向下传递了,如果我不接收,就会继续向下传递,如果一个控件继承了QPushButton,那么事件能继续向下传递的语句如下:
-
每一个窗口都有一个event()函数,每一个控件也都有event函数,主要工作是事件的分发,如果要让某种事件不起作用,则可以直接重载event()函数。事件过滤器bool eventFilter(QObject *watched,QEvent *event)在event函数执行之前,*watched代表要过滤哪一个控件,*event代表要过滤哪一个事件。有事件过滤器后,就不需要重载event了
在主窗口重载事件过滤器时,对需要过滤要进行安装过滤器操作,下图是具体的操作步骤
-
事件过滤器和被安装过滤器的组件必须在同一线程,否则过滤器将不起作用。
最后
以上就是机智盼望为你收集整理的Qt事件专栏的全部内容,希望文章能够帮你解决Qt事件专栏所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复