在Qt中由QCoreApplication统一管理Qt事件的收发和销毁,其中sendEvent为阻塞式发送,用于单线程的事件发送;postevent为非阻塞式发送,构造事件的线程和接受事件的线程可以为两个线程。
最近在做一个个人项目ShaderLab

需要绘制OpenGL实时渲染的图像,由于OpenGL渲染基本都放在循环语句内,直接放在主线程会导致界面卡死不响应,所以考虑另开一个线程在后台渲染,再把渲染好的图像在循环语句内通过postevent发送给前端的Widget

因此要想QCoreApplication注册一个QEvent类型,通过该类型的成员变量保存Image数据
//EvSendFrame.h
#include <QEvent>
class EvSendFrame : public QEvent
{
public: 
	EvSendFrame(void* frameData,int size);
	~EvSendFrame();
	static Type eventType;
public:
	uchar* _framedata;
};
#endif 
//EvSendFrame.cpp
#include "EvSendFrame.h"
                


















