2017-03-25 48 views
-1

我有一个头文件,在那里我有:如何通过枚举类型的信号paramater Qt中

enum event {UP, DOWN, LEFT, RIGHT, ACTION }; 

,我有Q_OBJECT类,我想通过事件类型“事件”作为信号paramater。

class GameView : public QGraphicsView { 
      Q_OBJECT 
      public: 
       GameView(QWidget* parent, GameModel *m); 
      ... 
      signals: 
       void sendEvent(event e); 
      ... 
}; 

但是当我尝试建立它,编译器说

“事件”不是一个类型。

如何正确地将枚举器作为类型传递给信号?

+0

它是编译器吗?它是否是moc?什么是* complete *错误信息? – peppe

+0

[如何在Qt信号和插槽中使用枚举]的可能重复(http://stackoverflow.com/questions/12368712/how-to-use-enums-in-qt-signals-and-slots)。你也错过了'Q_DECLARE_METATYPE'宏(在问题中)。 **下次做你的研究。** – LogicStuff

回答

0

这不是一个信号或Qt的问题。它是纯粹的C++。

eventQGraphicsView的成员函数。所以当你写void sendEvent(event e);时,event不是一个类型,而是一个函数。

您可以编写void sendEvent(::event e);这将强制在全局范围内解析event