我在Leap
上使用Qt
和Mac 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 问题:
答案 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