我想创建一个自定义QGraphicsItem按钮,如Fred here所示。他发布的代码可以找到here。自定义QGraphicsItems不编译,并给出“对象是私人”的错误
问题是,当我尝试编译代码我得到以下两个错误:
- /usr/include/qt4/QtGui/qgraphicsitem.h “的QGraphicsItem ::的QGraphicsItem(常量 的QGraphicsItem & )”是私人
- /usr/include/qt4/QtCore/qobject.h
'的QObject :: QObject的(常量的QObject &)' 是 私人
下面是代码片段,它基本上与上面示例中的代码片段相同。错误在于班级减速。
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:错误:未定义的接口”。我正在使用Qt 4.5.2。它需要4.6吗? – Troubadour 2010-04-20 21:21:14
@Troubadour,我正在使用v4.5.0和第二个示例,正如我指出的那样。所以它应该在v4.5.2上运行。当然,鉴于我得到这个错误,不知道我是否应该就此提供建议。 :) – bahree 2010-04-20 22:08:59
谢谢。另一个样本,以及来自同一地点的其他样本,对我来说都很好。也许Qt版本的差异是导致不同错误的原因。恐怕我不知道为什么会出现任何错误,尽管如果你在第31行删除了Q_INTERFACES宏,那么这个例子的编译效果会很好。不管这是个好主意还是当然不是; ... – Troubadour 2010-04-21 18:38:31