网站大量收购闲置独家精品文档,联系QQ:2885784924

Qt的第六章精编.ppt

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
重庆第二师范学院 重庆第二师范学院 重庆第二师范学院 重庆第二师范学院 重庆第二师范学院 重庆第二师范学院 Qt程序设计 主讲教师 姚富光 副教授 博士 第6章 事件系统 常用事件包含键盘事件(QKeyEvent)、鼠标事件(QMouseEvent)、定时器事件(QTimerEvent)等。以上事件类都是QEvent的子类。 6.1 Qt中的事件 事件和信号 都可以通过相应的事件相应函数或信号响应函数(槽),来处理对应的动作。 区别 (1)信号和槽通常是应用程序内部件与部件之间的纽带,用于部件之间传递信息和协同工作。 事件是由于应用程序外部的动作引起的响应,通常由用户操作,或另外的应用程序引起的,如按下键盘、鼠标操作、系统事件等。 (2)事件和信号处理的优先级管理方式不同 事件的处理,由子部件向父部件/父窗口的自下而上的方式传递,直到有响应函数响应后才结束该事件的处理; 信号的处理,一般指定槽函数,默认没有顺序。 (3)处理机制不同 事件的处理由事件队列维护,新产生的事件将拍到队列的最后等待处理,处理顺序是线性的; 信号的处理方式是立即处理,即产生信号后立即响应,如在信号中产生子信号,则需要像递归方式一样处理子信号,处理顺序是树状的。 1. 事件的处理 QCoreApplication类的notify()的5种方式: (1)重新实现部件的事件处理函数 …… (5)在对象上安装事件过滤器 2. 事件传递 Widget部件 MyLineEdit部件 eventFilter() 按下键盘 event () keyPressEvent() keyPressEvent() 步骤: 1. 新建QLineEdit的子类MyLineEdit,在Widget部件中创建MyLineEdit的对象 2. 分别重载Widget和MyLineEdit部件的keyPressEvent()事件函数 3. 在MyLineEdit部件中重载event()事件函数 4. 在widget.cpp中,为MyLineEdit部件安装eventFilter,并重载widget的eventFilter()事件函数 6.2 鼠标事件和滚轮事件 常用鼠标事件及响应函数 mousePressEvent() 按下鼠标按钮 mouseReleaseEvent() 释放鼠标按钮 mouseDoubleClickEvent() 双击鼠标按钮 mouseMoveEvent() 鼠标移动 wheelEvent() 滚动鼠标滚轮 预备知识: 1.利用QT模版创建鼠标样式 QCursor cursor; cursor.setShape(Qt::ClosedHandCursor); 2.利用图片创建鼠标样式 QCursor cursor(QPixmap(……)); 3.设定鼠标在部件中的形状 setCursor(cursor); 4.设置应用程序的鼠标形状 QApplication::setOverrideCursor(cursor); 5.恢复应用程序的鼠标形状 QApplication::restoreOverrideCursor(cursor); 6. 设置装口最大化 setWindowState(Qt::WindowFullScreen); setWindowState(Qt::WIndowNoState); 7.缩放TextEdit内容 textEdit-zoomIn(); textEdit-zoomOut(); 重庆第二师范学院 重庆第二师范学院 重庆第二师范学院 重庆第二师范学院 重庆第二师范学院 重庆第二师范学院

文档评论(0)

4753333 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档