首页 > 其他 > 详细

Qt中的鼠标事件

时间:2017-10-18 21:20:55      阅读:543      评论:0      收藏:0      [点我收藏+]
1、图形界面应用程序的消息处理模型
技术分享
技术分享
特点:
  • 基于操作系统才能运行
  • GUI应用程序提供的功能必须由用户触发
  • 用户操作界面时操作系统是第一个感知的 
  • 系统内核的消息通过事件处理转变成QT的信2、Qt中的事件处理
(1)Qt平台将系统产生的消息转变成Qt事件
  • Qt事件是一个QEvent(或子类)对象
  • 有时一个事件包含多个事件类型,比如鼠标事件又可以分为鼠标按下双击、和移动多种操作
  • 事件类型由QEvent类的枚举型QEvent::Type来表示,可由帮助文档进行查询
  • Qt事件用于描述程序内部或外部发生的对应动作描述的是操作系统发生来的消息,一个系统消息对应着一个消息事件
  • 任意QObject对象都具备时间处理的能力

技术分享

 

QEvent及其子类对象

note:QEvent子类可以表示一个事件,但并不能处理这个事件

Qt 程序需要在main()函数创建一个QApplication对象,然后调用它的exec()函数。这个函数就是开始 Qt 的事件循环。在执行exec()函数之后,程序将进入事件循环来监听应用程序的事件。当事件发生时,Qt 将创建一个事件对象。Qt 中所有事件类都继承于QEvent。在事件对象创建完毕后,Qt 将这个事件对象传递给QObject的event()函数。event()函数并不直接处理事件,而是将这些事件对象按照它们不同的类型,分发给不同的事件处理器(event handler)。如上所述,event()函数主要用于事件的分发

(2)GUI应用程序的事件处理方式
  • Qt事件产生后会立即被分发到QWidget对象(QObject的子类)
  • QWidget对象其内部会有一个event(QEVent*)函数被调用,进行事件处理
  • event()根据事件类型调用不同的事件处理函数(默认的子函数)
  • 在事件处理函数中发送Qt中预定义的信号
  • 调用信号关联的槽函数

(3) QPushButton事件处理分析技术分享

 

 

 

①接收到鼠标事件

②QApplication调用QObject::event(QEvent*)成员函数来处理,进行事件的分派。

③调用mouseReleaseEvent(QMouseEvent*)成员函数

④QPushButton调用click()成员函数

⑤触发信号SIGNAL(clicked())

技术分享

Qt中的鼠标事件

原文:http://www.cnblogs.com/zhaobinyouth/p/7688954.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!