今天学习内容对应<<QT学习之路2>>第18到23部分,主要是有关于QT事件这一部分的内容(=_=真是看到我快吐了,感觉这本书不适合我这种初学者).

先放出思维导图

难点总结

一,什么是事件,它和信号槽有什么异同的?

事件的具体定义我也讲不清=_=,按照豆子先生的说法,事件(event)是由系统或者 Qt 本身在不同的时刻发出的。当用户按下鼠标、敲下键盘,或者是窗口需要重新绘制的时候,都会发出一个相应的事件。事件可以是同步的,也可以是异步的(什么是同步?什么是异步?)而槽只能是同步的

二,事件的分类,怎么自己自定义事件?

QT提供了许多的预定义事件.QT采取的是一个事件对应一个事件函数.共有五个事件处理优先机制.分别为:

  1. 重写paintEvent()mousePressEvent()等事件处理函数。这是最普通、最简单的形式,同时功能也最简单。
  2. 重写event()函数。event()函数是所有对象的事件入口,QObjectQWidget中的实现,默认是把事件传递给特定的事件处理函数。
  3. 在特定对象上面安装事件过滤器。该过滤器仅过滤该对象接收到的事件。
  4. QCoreApplication::instance()上面安装事件过滤器。该过滤器将过滤所有对象的所有事件,因此和notify()函数一样强大,但是它更灵活,因为可以安装多个过滤器。全局的事件过滤器可以看到 disabled 组件上面发出的鼠标事件。全局过滤器有一个问题:只能用在主线程。
  5. 重写QCoreApplication::notify()函数。这是最强大的,和全局事件过滤器一样提供完全控制,并且不受线程的限制。但是全局范围内只能有一个被使用(因为QCoreApplication是单例的)。

另外我们也可以自定义自己所需要的事件.实现方法是继承QEvent()函数,来实现自定义事件和事件的发送.

三,事件什么时候会被接受,什么时候会被忽略?

事件的传播机制是否和信号类似?(=__=我也母鸡...)

按豆子先生写的, Qt 的事件传递看成链状:如果子类没有处理这个事件,就会继续向其父类传递.

注意一个,当重写事件回调函数时,时刻注意是否需要通过调用父类的同名函数来确保原有实现仍能进行!

什么意思呢?我也没看懂...

所以感觉这里基本是在写一些废话...算了,写上不懂的问题,免得忘记了.

另:什么时候选择事件?如果事件被处理了,那它还会传播吗?

怎么样让某个特定组件收不到事件?-->事件过滤器

要怎么样实现事件的忽略或者屏蔽?

四,事件过滤器是怎么样工作的?有多少类事件过滤器?

事件过滤器和目标对象要在同一线程时,事件过滤器才能工作(那么问题来了,什么是线程?)

事件过滤器的调用时间是在目标对象收到这个事件之前.这是由事件过滤器是否要向目的对象传递这个事件,从而起到了一个过滤的作用.

事件过滤器有很多种,这取决于编程人员的选择.甚至我们还可以给整个应用程序添加事件过滤器

ok!基本内容就写到这里了.

吐槽一下,这本书根本就适合初学者,不过我又不想换书.就先看看吧,熟悉一下概念.等到看不下去了再去找本简单来看.

嗯,加油^_^



[记录]学习QT学习之路2第四天相关推荐

  1. Krita学习——Qt学习笔记(一)

    Qt学习笔记 2020年8月1日 本Qt学习过程依赖于"传智播客"在bilibili上发布的<2019年最新QT从入门到实战完整版|传智播客>,本篇博文的图片大部分是从 ...

  2. QT学习笔记(摘抄)

    QT学习笔记-1.QT主要的对象 说来惭愧学习c++很长时间了一直没有使用c++开发过软件界面 所以现在想认认真真的学习一个c++图形界面框架库 本来想学习Xwidget但是这个资料不大好找 有啥问题 ...

  3. [记录]QT学习之路2学习第三天

    今天的内容对应的是<<QT学习之路2>>第13到17部分. 主要内容由思维导图总结 一,什么是QT对话框 二,什么是QT标准对话框 三,怎么样实现QT对话框数据传递 四,深入了 ...

  4. Qt学习之路_12(简易数据管理系统)

    原文地址为: Qt学习之路_12(简易数据管理系统) 前言 最近从大陆来到台湾,之间杂事很多,挤不出时间来更新博客- 这次主要是通过做一个简易的数据库管理系统,来学习在Qt中对数据库,xml,界面的各 ...

  5. QT学习之路2 学习笔记

    QT学习之路2 学习笔记 1.Qt 是一个著名的 C++ 应用程序框架.你并不能说它只是一个 GUI 库,因为 Qt 十分庞大,并不仅仅是 GUI 组件.使用 Qt,在一定程度上你获得的是一个&quo ...

  6. 转载: Qt 学习之路 2归档

    Qt 学习之路 2归档 http://www.devbean.net/2012/08/qt-study-road-2-catelog/

  7. 对QT学习之路12-14的源代码补充与修正

    QT学习之路12-14的源代码有些不完整,为了更好的让大家学习,本人做了一点修正与补充,谢谢.源代码如下: 头文件: #ifndef MAINWINDOW_H #define MAINWINDOW_H ...

  8. Qt学习之路1---软件下载安装及工程简介

    1.下载安装目前最新版的qt,官网链接:https://www.qt.io/qt5-8/: 和qt4不同,qt5在线安装,轻巧快速,而且不用配置一些繁琐的东西,安装之后会出现Qt creator这就是 ...

  9. java qt gui_工控编程,Qt 学习之路

    原标题:工控编程,Qt 学习之路 Qt 是一个著名的 C++ 库--或许并不能说这只是一个 GUI 库,因为 Qt 十分庞大,并不仅仅是 GUI.使用 Qt,在一定程序上你获得的是一个"一站 ...

最新文章

  1. Linux jupyter安装位置,Linux下安装jupyter
  2. java中有ClockPane类吗,JavaFX实现简易时钟效果(二)
  3. NLP:GLUE和SuperGLUE基准的简介、任务分类、使用方法之详细攻略
  4. python中import与input_python : import详解。
  5. 四全集学python选哪种电脑_“Python教程哪个版本最适合学习?“python教程全集
  6. redis-sentinel高可用配置(2)
  7. .net ajax 怎么写,.NET学习篇--Ajax中Url的写法
  8. 领域应用 | 如何将知识图谱特征学习应用到推荐系统?
  9. 【php-laravel框架】第三节:利用composer安装laravel-admin开源管理系统
  10. 100.Day12反射机制_qq_38205875的博客
  11. rsync本地模式讲解04
  12. C运行时库(CRT)
  13. struts如何使用命名空间_Python基础篇:作用域和命名空间
  14. idea+java+selenium自动化测试环境搭建
  15. ssm生鲜超市管理系统的设计与实现毕业设计源码261635
  16. 大数据培训:hadoop基础教程
  17. 基于html评定奖学金页面代码,学校助学奖学金申请表页面模板
  18. 作业——05 理解爬虫原理
  19. 速抢:500份粉丝购书优惠券
  20. macOS Monterey 如何设置PPT演讲者模式实现电脑看备注投影看播放内容

热门文章

  1. 书籍-邓普顿教你逆向
  2. 7-4 藏头诗 (15 分)
  3. 校园智能铃声软件《校园小助手软件》Ver2.4.4
  4. PH测定仪、电导率测定仪、叶绿素荧光测定仪使用
  5. Linux Kernel - Debug Guide (Linux内核调试指南 )
  6. android gps 航向,gps航向怎么在webgis系统中表示
  7. LLVM学习入门(3):生成 LLVM 中间代码 IR
  8. 提高电脑使用效率神器(初学者必备)
  9. 拆解TL-NVR5108K硬盘录像机
  10. iPhone开发-- 崩溃之 Collection was mutated while being enumerated.的三种解决办法