【问题标题】:QGraphicsSimpleTextItem "invalid use of incomplete type"QGraphicsSimpleTextItem“不完整类型的无效使用”
【发布时间】:2017-07-28 06:23:38
【问题描述】:

我的代码如下:

pointerwidget.h

QGraphicsSimpleTextItem *text;

pointerwidget.cpp

void PointerWidget::placeNumbers(float spacing, int currentTickNumber)
{
    float label = spacing/scaleFactor;
    text = scene->addSimpleText(QString::number(label),QFont("Comic Sans MS", 12, QFont::Bold));
    text->setPos(currentTickNumber*spacing,30);
}

我读到的所有地方都说使用 setPos(x,y) 来定位文本项。这是 QGraphicsItem 的一个函数。我收到“无效使用不完整类型'class QGraphicsSimpleTextItem'”的错误。为了进一步确认有什么问题,Qt Creator 不会“识别”或尝试“自动完成”函数调用。

如果它注释掉给我错误的行,那么我会得到一堆位于 (0,0) 的简单文本。重点是,给我错误的不是 addSimpleText() 函数。

有什么想法吗?

谢谢!

【问题讨论】:

    标签: qt qgraphicsview qgraphicsscene qgraphicsitem qgraphicstextitem


    【解决方案1】:

    您需要包含QGraphicsSimpleTextItem 包含文件:

    #include <QGraphicsSimpleTextItem>
    

    您必须在某处对类进行前向声明,以便可以在包含文件中声明指针,但不包含实际的类定义,因此编译器不知道如何处理您的 text变量。

    【讨论】:

      猜你喜欢
      • 2017-10-24
      • 2010-10-13
      • 2013-05-19
      • 2016-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多