• 11754阅读
  • 7回复

仅仅是继承了QGraphicsItem出现以下无法解决问题 [复制链接]

上一主题 下一主题
离线downstairs
 

只看楼主 倒序阅读 楼主  发表于: 2010-01-30
— 本帖被 XChinux 从 General Qt Programming 移动到本区(2011-01-02) —
类继承了QGraphicsItem

结果编译报错。。
没法解决。。只好求助了。。
那个类是空类。新建的。毛都没写。。

错误信息
  1. 1>------ 已启动生成: 项目: SceneBuild, 配置: Release Win32 ------
  2. 1>Moc'ing meshlistitem.h...
  3. 1>正在编译...
  4. 1>moc_meshlistitem.cpp
  5. 1>.\Release\moc_meshlistitem.cpp(41) : error C2039: “staticMetaObject”: 不是“QGraphicsItem”的成员
  6. 1>        d:\qt\4.6.1\include\qtgui\../../src/gui/graphicsview/qgraphicsitem.h(90) : 参见“QGraphicsItem”的声明
  7. 1>.\Release\moc_meshlistitem.cpp(51) : error C2227: “->metaObject”的左边必须指向类/结构/联合/泛型类型
  8. 1>.\Release\moc_meshlistitem.cpp(51) : error C2227: “->metaObject”的左边必须指向类/结构/联合/泛型类型
  9. 1>.\Release\moc_meshlistitem.cpp(59) : error C2039: “qt_metacast”: 不是“QGraphicsItem”的成员
  10. 1>        d:\qt\4.6.1\include\qtgui\../../src/gui/graphicsview/qgraphicsitem.h(90) : 参见“QGraphicsItem”的声明
  11. 1>.\Release\moc_meshlistitem.cpp(64) : error C2039: “qt_metacall”: 不是“QGraphicsItem”的成员
  12. 1>        d:\qt\4.6.1\include\qtgui\../../src/gui/graphicsview/qgraphicsitem.h(90) : 参见“QGraphicsItem”的声明
  13. 1>meshlistitem.cpp
  14. 1>正在生成代码...
  15. 1>生成日志保存在“file://d:\SceneBuild\release\BuildLog.htm”
  16. 1>SceneBuild - 5 个错误,0 个警告
  17. ========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========


代码.h
  1. #ifndef MESHLISTITEM_H
  2. #define MESHLISTITEM_H
  3. #include <QGraphicsItem>
  4. class meshListItem : public QGraphicsItem
  5. {
  6.     Q_OBJECT
  7. public:
  8.     meshListItem();
  9.     ~meshListItem();
  10. private:
  11.     
  12. };
  13. #endif // MESHLISTITEM_H

.cpp
  1. #include "meshlistitem.h"
  2. meshListItem::meshListItem()
  3.     : QGraphicsItem()
  4. {
  5. }
  6. meshListItem::~meshListItem()
  7. {
  8. }
喜爱编程的猫头鹰
离线dbzhang800

只看该作者 1楼 发表于: 2010-01-30
QGraphicsItem 不是 QObject 的子类。你不能用 Q_OBJECT 宏!!

或许你想找

QGraphicsObject
离线englishwwm19
只看该作者 2楼 发表于: 2010-01-30
你继承了QGraphicsItem,就需要实现他的抽象成员函数呀!看看帮助
离线downstairs

只看该作者 3楼 发表于: 2010-01-31
···编译器的问题。。。。DOS下 用qmake编译
喜爱编程的猫头鹰
离线yangfanxing
只看该作者 4楼 发表于: 2010-02-01
引用第3楼downstairs于2010-01-31 14:03发表的  :
···编译器的问题。。。。DOS下 用qmake编译

PHPWind好恶心。。。不想看这种界面。。。
离线loadstar
只看该作者 5楼 发表于: 2010-02-05
englishwwm19是正解,应为QGraphicItem为抽象类,需要重新实现其中的纯虚函数,主要包括
paint和boundingRect
离线sbtree
只看该作者 6楼 发表于: 2010-02-05
综合一楼和二楼的答案,就能通过编译了
windows 7 + VC++2008 + Qt4.5.2
离线downstairs

只看该作者 7楼 发表于: 2011-03-02
YES!!!!!!!!!
喜爱编程的猫头鹰
快速回复
限100 字节
 
上一个 下一个