Ich muss mehrere benutzerdefinierte Ereignisklassen für eine Qt-Anwendung erstellen.
Im Moment sieht es so aus, dass ich den folgenden Ereignistyp-Registrierungscode für jede Ereignisklasse implementieren muss:
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;
}
Gibt es Vorschläge, wie ich dies vereinfachen oder zumindest mit einem Makro ausblenden kann?