c++ - LeapMotion、Qt 和信号

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

我正在 Mac OS X 上使用 LeapQt 并且我试图在手指定位时发出信号改变了。

我正在(尝试)使用 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. 我的做法是否正确,但存在假人错误?

最佳答案

使用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/

相关文章:

java - Java/Python 的动态链接库可以在 C/C++ 中访问吗?

c++ - OpenCL Reduce 内核只返回一个值

c++ - 在 QScrollBar 可见性发生变化时获取 QScrollBar 宽度

c++ - 如何最好地从 readyRead 信号的套接字中获取数据?

C++ 强制 new[] 不分配 4 个额外的字节

c++ - Microsoft Visual Studio 2010 无法编译、加载/创建文件或识别 iostream?

qt - 在 dropEvent 中删除 QFrame 子类时,内部 QMutex::lock 崩溃

c - QtCreator Doxygen for c 项目

c++ - Qt4.8中处理鼠标滚轮事件

Qt:动态小部件信号和插槽连接