【发布时间】:2011-02-10 08:12:59
【问题描述】:
我正在尝试创建一个自定义 QGraphicsItem 按钮,如 Fred here 所示。他发布的代码可以在here找到。
问题是当我尝试编译代码时出现以下两个错误:
- /usr/include/qt4/QtGui/qgraphicsitem.h 'QGraphicsItem::QGraphicsItem(const QGraphicsItem&)' 是私有的
- /usr/include/qt4/QtCore/qobject.h
'QObject::QObject(const QObject&)' 是 私人的
这里是代码 sn-p,它与上面的示例基本相同。错误在于类减速。
class MyButton : public QObject, public QGraphicsItem
{
Q_OBJECT
Q_INTERFACES(QGraphicsItem)
public:
MyButton(QGraphicsItem *parent = 0);
MyButton(const QString normal, const QString pressed = "", QGraphicsItem *parent = 0);
....
}
有趣的是,here 所示的另一个示例工作正常。可以在here找到示例代码。
知道有什么问题吗?提前致谢。
【问题讨论】:
-
我得到一个不同的错误 - “button.h:31: Error: Undefined interface”。我正在使用 Qt 4.5.2。它需要 4.6 吗?
-
@Troubadour,我使用的是 v4.5.0 和我指出的第二个示例。所以它应该适用于 v4.5.2。当然,鉴于我收到此错误,不确定我是否应该就此提出建议。 :)
-
谢谢。另一个样本,实际上是来自同一个地方的其他样本,对我来说都很好。也许 Qt 版本差异是导致不同错误的原因。恐怕我不知道为什么会发生这两个错误,尽管如果您在第 31 行删除 Q_INTERFACES 宏,该示例确实可以正常构建。当然,这是否是个好主意... ;)
-
@Troubadour 是的,我昨天发现了同样的事情,它似乎有效;不确定是什么都坏了(如果有的话)。如果没有任何问题,那么首先不确定为什么需要这样做。虽然,我仍然不明白为什么这会失败。也感谢您回复。对其他人确认同样的事情也有好处。欣赏它。
标签: c++ qt4 qgraphicsview qgraphicsitem