我需要为Qt应用程序创建几个自定义事件类。是否有更简洁的方式来注册Qt自定义事件?
现在,它看起来像我将需要实现为每个事件类中的下列事件类型注册代码:
class MyEvent : public QEvent
{
public:
MyEvent() : QEvent(registeredType())
{
}
static QEvent::Type eventType;
private:
static QEvent::Type registeredType();
}
QEvent::Type MyEvent::eventType = QEvent::None;
QEvent::Type MyEvent::registeredType()
{
if (eventType == QEvent::None)
{
int generatedType = QEvent::registerEventType();
eventType = static_cast<QEvent::Type>(generatedType);
}
return eventType;
}
我如何能简化这一点,或至少有一个宏隐藏任何建议?
你也可以看看[this stackoverflow post](http://stackoverflow.com/a/8232397/5253471)。它对我很好。 – Francois 2015-12-16 18:19:17
@Francois是的,你已经链接到的答案提供了一个比这更优雅的解决方案,再加上这样一个事实,即通常事件类型被定义为常量,以防止事件超越事件。 – rbaleksandar 2017-02-04 15:44:14