Qt之自定义事件

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

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

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

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

Qt之自定义事件_第1张图片

QHFrameEvent.h

#ifndef QHFRAMEEVENT_H
#define QHFRAMEEVENT_H

#include 

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 *

你可能感兴趣的:(Qt工作笔记,Qt,Event,自定义事件,注册事件,customEvent,1024程序员节)