Lou*_*ise 2 c++ qt qgraphicsitem incomplete-type
我从这个问题开始:导致类型不完整的原因是什么?(QGraphicsItem:源或目标具有不完整类型)
如上所述,我收到以下错误(部分是我自己的翻译):
C664:将参数1从'Qt :: CursorShape'转换为'const QCursor&'是不可能的.来源或目标的类型不完整.
在试图找出项目可能不完整的原因时,我将其剥离到一个仍然显示错误的最小测试用例.奇怪的是:它绝对是最小的......
标题:
#include <QGraphicsPixmapItem>
class PhotoItem : public QGraphicsPixmapItem
{
public:
PhotoItem();
void someMethod();
protected:
};
Run Code Online (Sandbox Code Playgroud)
执行:
#include "photoitem.h"
PhotoItem::PhotoItem() : QGraphicsPixmapItem()
{
QPixmap pxm(80, 80);
pxm.fill(Qt::cyan);
setPixmap( pxm );
}
void PhotoItem::someMethod()
{
setCursor(Qt::OpenHandCursor);
}
Run Code Online (Sandbox Code Playgroud)
它不编译,给出如上所述的错误.但是,在main方法中设置光标item->setCursor(Qt::OpenHandCursor);效果很好.这个错误在其他QGraphicsItems中似乎是持久的(至少我测试了QGraphicsRectItem).
我完全糊涂了,不知道接下来要检查什么.上面的代码是否适用于其他机器/设置?我还可以测试什么来获取更多信息?
谢谢,路易斯
在您的cpp上,包括以下行:
#include <QCursor>
Run Code Online (Sandbox Code Playgroud)
问题是你正在使用的某个类声明QCursor(做出前向声明,它是......呃,说'前向声明'是对的吗?).Qt::OpenHandCursor有这种类型,但编译器不知道定义类QCursor的位置.在cpp中包含定义的文件就可以了.
它在你的main函数中工作的原因可能是因为你包含了<QtGui>,或者包含QCursor的其他一些标题,而你却不知道它.
| 归档时间: |
|
| 查看次数: |
1210 次 |
| 最近记录: |