QEvent自定义事件例子 c++实现
时间: 2023-08-12 18:27:50 浏览: 87
Qt自定义事件Demo
以下是一个简单的自定义事件的例子,使用C++实现:
```cpp
#include <QCoreApplication>
#include <QEvent>
#include <QObject>
#include <QDebug>
// 自定义事件类型
class MyEventType : public QEvent::Type
{
public:
static QEvent::Type type() { static QEvent::Type t = QEvent::registerEventType(); return t; }
};
// 自定义事件类
class MyEvent : public QEvent
{
public:
MyEvent() : QEvent(MyEventType::type()) {}
};
// 自定义对象
class MyObject : public QObject
{
public:
bool event(QEvent *e) override
{
if (e->type() == MyEventType::type())
{
qDebug() << "Received MyEvent";
return true;
}
return QObject::event(e);
}
};
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
MyObject obj;
MyEvent event;
QCoreApplication::postEvent(&obj, &event); // 分发自定义事件
return a.exec();
}
```
这个例子创建了一个自定义事件类型和一个自定义事件类。然后创建了一个自定义对象和一个自定义事件,并使用QCoreApplication的postEvent()方法将自定义事件分发到自定义对象中。当自定义对象接收到自定义事件时,会输出一条消息。
阅读全文