QT: Определение пользовательского типа события

Я создал пользовательское событие в своем спокойном приложении путем разделения на подклассы QEvent.

class MyEvent : public QEvent
{
  public:
    MyEvent() : QEvent((QEvent::Type)2000)) {}
    ~MyEvent(){}
}

Для проверки на это событие я использую следующий код в событии () метод:

if (event->type() == (QEvent::Type)2000)
{
  ...
}

Я хотел бы иметь возможность определить Тип пользовательского события где-нибудь в моем приложении так, чтобы я не должен был бросать фактическое целое число в своих методах события. Таким образом в моем событии () методы я хотел бы иметь возможность сделать что-то как

if (event->type() == MyEventType)
{
  ...
}

Какие-либо мысли, как и где в коде я мог бы сделать это?

16
задан Chris 11 February 2010 в 21:54
поделиться

1 ответ

Если тип события идентифицирует ваш конкретный класс, я бы поместил его туда:

class MyEvent : public QEvent {
public:
    static const QEvent::Type myType = static_cast<QEvent::Type>(2000);
    // ...
};

// usage:
if(evt->type() == MyEvent::myType) {
    // ...
}
17
ответ дан 30 November 2019 в 16:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: