Qt入门教程-Qt事件系统-08

事件是各种应用程序需要知道的由应用程序内部或者外部产生的事情或者动作的通称

1、	QObject的子类都都可以接收和处理事件

2、	一个事件由一个特定的QEvent子类来表示

3、	有时一个事件包含多个事件类型鼠标事件包含(鼠标按下,鼠标双击,鼠标移动)

4、	这些事件类型都由QEvent类的举枚类型QEvent::ytpe来表示(其中包含一百多种事件类型)

5、	QEvent可以表示一个事件但是却不能用来处理事件:

由5种可以处理事件的方法

	方法一:重新实现paintEvent(),mousePressEvent()等事件处理函数(它只能用来处理特定部件的特定事件)

	方法二:重新实现notify()函数:功能强大提供了完全的控制,可以在事件过滤器得到事件之前得到它。但是一次只能处理一个事件

	方法三:向QApplication安装事件过滤器;可以同时处理多个事件

	方法四:重新实现event()函数:QObjet类的event可以在事件达到默认的事件处理函数之前获得事件

	方法五:在对象上安装事件过滤器;使用事件过滤器可以在一个界面类种同时处理不同子部件的不同事件

常用的是方法一和方法五,方法二和方法三会减慢事件的传递所有虽然功能强大但是很少用

每个程序的main()函数最后都会调用exec()函数它会使qt应用程序进入事件循环,可以程序运行就可以接收发生的各种事件,一旦都事件发生,qt会构建一个QEvent子类的对象来表示,然后他会相应的传递给QObject对象或其子类:

事件是先传递给具有焦点的部件,如果该部件忽悠了该事件,那么这个事件就传递给其父部件

QMouseEvent表示一个鼠标事件

QMouseEvent表示可以获知鼠标是哪个键按下、鼠标位置等信息

QWheelEvent表示鼠标滚轮事件

定时器事件与随机数

	QTimerEvent类用来描述一个定时器

	使用QTimer类来实现一个定时器

	随机数:qrand()和qsrand()两个函数实现的

	Int h=Qrand()%300在300以内的整数。

	安装事件过滤器于事件的发送

	它不是一个类是由两个函数组成installEventFilter()和eventFilter(),都是QObject类

	QLineEdit::keyPressEvent(event);	//执行事件默认处理

	ecent->ignore();			//		忽略事件

博主QQ交流群:778212048

为了使更多的Qt初学者能尽快入门Qt,也为了QtQt Creator的快速普及,我们花费大量精力写出了这一系列教程。虽然教程的知识可能很浅显,虽然教程的语言可能不规范,但是它却被数十万网友所认可。我们会将这一系列教程一直写下去,它将涉及Qt的方方面面 一、Qt Creator的安装和hello world程序的编写 二、Qt Creator编写多窗口程序 三、Qt Creator登录对话框 四、Qt Creator添加菜单图标 五、Qt Creator布局管理器的使用 六、Qt Creator实现文本编辑 七、Qt Creator实现文本查找 八、Qt Creator实现状态栏显示 九、Qt Creator中鼠标键盘事件的处理实现自定义鼠标指针 十、Qt Creator中实现定时器和产生随机数 十一、Qt 2D绘图(一)绘制简单图形 十二、Qt 2D绘图(二)渐变填充 十三、Qt 2D绘图(三)绘制文字 十四、Qt 2D绘图(四)绘制路径 十五、Qt 2D绘图(五)显示图片 十六、Qt 2D绘图(六)坐标系统 十七、Qt 2D绘图(七)Qt坐标系统深入 十八、Qt 2D绘图(八)涂鸦板 十九、Qt 2D绘图(九)双缓冲绘图简介 二十、Qt 2D绘图(十)图形视图框架简介 二十一、Qt数据库(一)简介 二十二、Qt数据库(二)添加MySQL数据库驱动插件 二十三、Qt数据库(三)利用QSqlQuery类执行SQL语句(一) 二十四、Qt数据库(四)利用QSqlQuery类执行SQL语句(二) 二十五、Qt数据库(五)QSqlQueryModel 二十六、Qt数据库(六)QSqlTableModel 二十七、Qt数据库(七)QSqlRelationalTableModel 二十八、Qt数据库(八)XML(一) 二十九、Qt数据库(九)XML(二) 三十、Qt数据库(十)XML(三) 三十一、Qt 4.7.0及Qt Creator 2.0 beta版安装全程图解 三十二、第一个Qt Quick程序(QML程序) 三十三、体验QML演示程序 三十四、Qt Quick Designer介绍 三十五、QML组件 三十六、QML项目之Image和BorderImage 三十七、Flipable、Flickable和状态与动画 三十八、QML视图 三十九、QtDeclarative模块 四十、使用Nokia Qt SDK开发Symbian和Maemo终端软件 四十一、Qt网络(一)简介 四十二、Qt网络(二)HTTP编程 四十三、Qt网络(三)FTP(一) 四十四、Qt网络(四)FTP(二) 四十五、Qt网络(五)获取本机网络信息 四十六、Qt网络(六)UDP 四十七、Qt网络(七)TCP(一) 四十八、Qt网络(八)TCP(二)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值