LeapMotion,Qt和信号

时间:2013-07-04 09:00:07

标签: c++ qt signals-slots leap-motion

我在Leap上使用QtMac OS X,并且当手指位置发生变化时我正试图发出信号。

我正在尝试使用QObject执行此操作:

class SampleListener : public Leap, public QObject{ 
     Q_Object

     class def }

但编译后moc_SampleListener存在问题:

moc_SampleListener.cpp:94:18: error: no member named 'staticMetaObject' in 'Leap::Listener'
    { &Listener::staticMetaObject, qt_meta_stringdata_PhLeap.data,
       ~~~~~~~~~~^
moc_SampleListener.cpp:111:22: error: no member named 'qt_metacast' in 'Leap::Listener'
    return Listener::qt_metacast(_clname);
           ~~~~~~~~~~^
moc_SampleListener.cpp:116:21: error: no member named 'qt_metacall' in 'Leap::Listener'
    _id = Listener::qt_metacall(_c, _id, _a);
          ~~~~~~~~~~^

所以我有 2 问题:

  1. 我试图以错误的方式发出信号吗?
  2. 我是以正确的方式做的,但是有假人的错误吗?

1 个答案:

答案 0 :(得分:3)

使用Q_OBJECT

http://qt-project.org/doc/qt-5.0/qtcore/qobject.html#Q_OBJECT

  

Q_OBJECT宏必须出现在类的私有部分中   声明自己的信号和插槽或使用其他信号的定义   Qt的元对象系统提供的服务。

哦,还有,QObject must be the first inherited class