欢迎来到飞鸟慕鱼博客,开始您的技术之旅!
当前位置: 首页知识笔记正文

qt事件过滤器,qt按钮点击事件

墨初 知识笔记 88阅读

在Qt中,自定义事件的步骤大概如下:
1.创建自定义事件,自定义事件需要继承QEvent

2.使用QEvent::registerEventType()注册自定义事件类型,事件的类型需要在 QEvent::User 和 QEvent::MaxUser 范围之间,在QEvent::User之前是预留给系统的事件

3.使用sendEvent() 和 postEvent()发送自定义消息

4.接受自定义消息,通过重写 event、customEvent 或eventFilter来处理事件
自定义事件有很多应用场景,比如说从第三方库中回调过来的数据,如果要显示到界面上,需要在回调函数中将数据包装成事件发送出来,主线程接收到事件后解析数据并显示。下面是一个从第三方库获取视频帧并绘制到界面的例子。

QHFrameEvent.h

#ifndef QHFRAMEEVENT_H#define QHFRAMEEVENT_H#include <QEvent>struct Frame{    uint8_t *buffer;    int width;    int height;};class QHFrameEvent : public QEvent{public:    explicit QHFrameEvent(Frame *frame);    virtual ~QHFrameEvent();public:    static void postEvent(QObject *obj, Frame *frame);    static QHFrameEvent *

标签:
声明:无特别说明,转载请标明本文来源!