首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >自定义QGraphicsItems不编译并给出“对象是私有”错误

自定义QGraphicsItems不编译并给出“对象是私有”错误
EN

Stack Overflow用户
提问于 2010-04-20 21:10:28
回答 1查看 2.3K关注 0票数 1

我正在尝试创建一个自定义QGraphicsItem按钮,如Fred 这里所示。他发布的代码可以找到这里

问题是,当我试图编译代码时,会出现以下两个错误:

  • /usr/include/QtGui/qGraphicsitem.h‘QGraphicsItem::QGraphicsItem(const QGraphicsItem&)’是私有的
  • /usr/include/qt4 4/QtCore/qobject.h ‘QObject::QObject(const QObject&)’是私有的

下面是代码片段,本质上与上面的示例中的代码片段相同。错误发生在类减速上。

代码语言:javascript
运行
复制
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);
....
}

有趣的是,另一个示例如图所示,这里工作得很好。它的示例代码可以找到这里

知道是怎么回事吗?提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2010-04-20 22:37:45

这些错误看起来像是试图复制按钮对象。编译器试图自动生成MyButton复制构造函数,但失败了,因为QObject的复制构造函数(即按钮库)是私有的。除了列出的错误之外,您还应该看到如下内容:

代码语言:javascript
运行
复制
note: synthesized method 'MyButton::MyButton(const MyButton&)' first required here

在此消息后面有源文件名和行号。如果您没有看到这条消息,请尝试添加:

代码语言:javascript
运行
复制
private:
    Q_DISABLE_COPY(MyButton)

到MyButton类定义。那你应该看看这个:

代码语言:javascript
运行
复制
error: 'MyButton::MyButton(const MyButton&)' is private within this context
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2678661

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档