我正在 Mac OS X
上使用 Leap
和 Qt
并且我试图在手指定位时发出信号改变了。
我正在(尝试)使用 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 个问题:
- 我是否试图以错误的方式发出信号?
- 我的做法是否正确,但存在假人错误?
最佳答案
使用Q_OBJECT
宏
http://qt-project.org/doc/qt-5.0/qtcore/qobject.html#Q_OBJECT
The Q_OBJECT macro must appear in the private section of a class definition that declares its own signals and slots or that uses other services provided by Qt's meta-object system.
哦,还有,QObject must be the first inherited class
关于c++ - LeapMotion、Qt 和信号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17466109/