Qt的.声明自定义QEvent类型ONCE

Max*_*bov 2 qt qevent

我有一个带有这样代码的.h文件:

const QEvent::Type MyOnEventType =
           QEvent::Type(QEvent::registerEventType( QEvent::User + 500 ) );
Run Code Online (Sandbox Code Playgroud)

此标头在应用程序中使用两次.我发现一个问题,在不同的地方MyOnEventType有不同的整数值.如果在上面的代码上设置断点,调试器将停止9次.

请帮助如何声明自定义QEvent类型ONCE

Dav*_*eer 5

我不是100%肯定我理解你的问题,但听起来你需要将声明和实现分开.就像是:

my_event.h

class MyEvent : public QEvent {
 public:
  static const QEvent::Type MyEventType;
  // etc. 
};
Run Code Online (Sandbox Code Playgroud)

my_event.cpp

#include "my_event.h"

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

// etc.
Run Code Online (Sandbox Code Playgroud)