Qt.Объявить пользовательский тип QEvent ONCE - PullRequest
2 голосов
/ 22 ноября 2011

У меня есть .h файл с таким кодом:

const QEvent::Type MyOnEventType =
           QEvent::Type(QEvent::registerEventType( QEvent::User + 500 ) );

Этот заголовок используется дважды в приложении. Я обнаружил проблему, что в разных местах MyOnEventType имеют разные целочисленные значения. Если создать точку останова для этого кода выше, отладчик останавливается 9 раз.

Пожалуйста, помогите, как объявить пользовательский тип QEvent ONCE

1 Ответ

5 голосов
/ 22 ноября 2011

Я не уверен на 100%, что понимаю ваш вопрос, но, похоже, вам нужно разделить декларацию и реализацию.Что-то вроде:

my_event.h

class MyEvent : public QEvent {
 public:
  static const QEvent::Type MyEventType;
  // etc. 
};

my_event.cpp

#include "my_event.h"

const QEvent::Type MyEvent::MyEventType = 
        static_cast<QEvent::Type>(QEvent::registerEventType());

// etc.
...