• Qt的事件


    2023年11月5日,周日上午

    还没写完,不定期更新


    目录


    事件处理函数的字体特点

    在Qt中,关于事件处理的函数的名字是斜体的。


    Qt事件处理的工作原理

    在Qt中,事件处理是一种基于信号和槽机制的方式,用于响应用户输入、系统事件以及其他事件发生时的操作。Qt的事件处理机制是基于QObject类的,因为几乎所有的Qt类都是QObject类的子类。

    事件处理的基本原理是,当一个事件发生时,Qt会将该事件封装成一个QEvent对象,并将其传递给对应的QObject对象。QObject对象会根据事件的类型和属性来判断如何处理该事件。如果QObject对象重写了特定的事件处理函数,它将调用相应的事件处理函数来处理该事件。


    一些常用的事件处理函数

    1. event(QEvent *event):这是QObject的基本事件处理函数。你可以在你的QObject子类中重写这个函数来处理事件。你需要根据事件的类型来判断如何处理该事件,并在需要时调用基类的event()函数。

    2. mousePressEvent(QMouseEvent *event):当鼠标按下事件发生时,会调用此函数。你可以在这个函数中处理鼠标按下事件。

    3. mouseReleaseEvent(QMouseEvent *event):当鼠标释放事件发生时,会调用此函数。你可以在这个函数中处理鼠标释放事件。

    4. mouseMoveEvent(QMouseEvent *event):当鼠标移动事件发生时,会调用此函数。你可以在这个函数中处理鼠标移动事件。

    5. keyPressEvent(QKeyEvent *event):当键盘按下事件发生时,会调用此函数。你可以在这个函数中处理键盘按下事件。

    6. keyReleaseEvent(QKeyEvent *event):当键盘释放事件发生时,会调用此函数。你可以在这个函数中处理键盘释放事件。

    7. resizeEvent(QResizeEvent *event):当窗口大小改变事件发生时,会调用此函数。你可以在这个函数中处理窗口大小改变事件。

    8. closeEvent(QCloseEvent *event):当窗口关闭事件发生时,会调用此函数。你可以在这个函数中处理窗口关闭事件。

    除了上述常用的事件处理函数,还有许多其他的事件处理函数可以根据需要进行重写。

    在事件处理函数中,可以根据事件对象的属性来判断事件的类型和具体细节,然后根据需要执行相应的操作。还可以通过调用事件对象的方法来获取更多有关事件的信息。


    Qt中的事件类型

    QEvent类的type成员函数可以用来判断事件的类型

    事件的类型有哪些?

    在Qt助手(assistant)中,搜索“QEvent::type”,可以看到所有的事件类型

    由于事件类型太多,我就不一一列举了。


    有多少种事件类

    右键下图中红框所示的类,就可以跳转到能看到事件类的地方

    1. class QActionEvent;
    2. class QMouseEvent;
    3. class QWheelEvent;
    4. class QHoverEvent;
    5. class QKeyEvent;
    6. class QFocusEvent;
    7. class QPaintEvent;
    8. class QMoveEvent;
    9. class QResizeEvent;
    10. class QCloseEvent;
    11. class QContextMenuEvent;
    12. class QInputMethodEvent;
    13. class QTabletEvent;
    14. class QDragEnterEvent;
    15. class QDragMoveEvent;
    16. class QDragLeaveEvent;
    17. class QDropEvent;
    18. class QShowEvent;
    19. class QHideEvent;

  • 相关阅读:
    【基础教程】Matlab实现指数威布尔分布
    双标题生成-采集文章自动生成双标题软件免费
    MySQL·SQL优化
    解决ffmpeg的播放摄像头的延时优化问题(项目案例使用有效)
    EureKa服务注册与发现(集群部署Eureka与支付模块集群部署、订单模块访问负载均衡调用支付服务实现)
    【Filament】Filament环境搭建
    2022-08-01
    Go----方法和函数的区别
    Android Studio的下载安装与使用
    Redis与分布式:主从复制
  • 原文地址:https://blog.csdn.net/m0_61629312/article/details/134226808