• 14915阅读
  • 6回复

多重继承的问题 [复制链接]

上一主题 下一主题
离线lugaideath
 

只看楼主 倒序阅读 楼主  发表于: 2009-01-08
— 本帖被 XChinux 执行加亮操作(2009-01-08) —
我想我的类继承QGraphicsItem和QObject两个类,目的是为了有QGraphicsItem的功能同时也要实现信号槽,当我已经把信号写进了我的类,编译的时候,没有写Q_OBJECT,就会有下面的错误:
moc_node.cpp:38: 错误:‘staticMetaObject’ 不是 ‘QGraphicsItem’ 的成员
moc_node.cpp: In member function ‘virtual void* Node::qt_metacast(const char*)’:
moc_node.cpp:54: 错误:‘qt_metacast’ 不是 ‘QGraphicsItem’ 的成员
moc_node.cpp: In member function ‘virtual int Node::qt_metacall(QMetaObject::Call, int, void**)’:
moc_node.cpp:59: 错误:‘qt_metacall’ 不是 ‘QGraphicsItem’ 的成员
make: *** [moc_node.o] 错误 1


如果写了Q_OBJECT就有下面的错:
myControl/GraphicsView/node.h:47: Error: Class declarations lacks Q_OBJECT macro.
make: *** [moc_node.cpp] 错误 1

那么我应该怎么写呢?
离线snailbing

只看该作者 1楼 发表于: 2009-01-08
继承时 QObject 要写在 QGraphicsItem 之前
离线lugaideath

只看该作者 2楼 发表于: 2009-01-08
位置换了也是出现错误!因为我继承QObject只是要实现信号槽,主要的还是要QGraphicsItem的功能!
离线280923299
只看该作者 3楼 发表于: 2009-04-07
现在我也遇到了一模一样的问题。后来发现是自己C++没有学好, 多重继承时public要写在每一个base class前

class MyGraphicsItem : public QGraphicsItem, public QObject
离线dfman1978

只看该作者 4楼 发表于: 2009-04-22
可以定义一个类,重QObject继承,然后让自定义的QGrpahicsItem的对象作为这个类的一个成员即可
离线pbe_sedm

只看该作者 5楼 发表于: 2009-08-26
类的构造函数定义之前加入 Q_OBJECT 就OK 了!!
离线985837
只看该作者 6楼 发表于: 2010-12-14
类的构造函数定义之前加入 Q_OBJECT 就OK 了!!
我也遇到了类似的问题,按照五楼的处理就好了。
快速回复
限100 字节
 
上一个 下一个