我正在尝试创建一个自定义QGraphicsItem按钮,如Fred here所示。他发布的代码可以找到here。
问题是当我尝试编译代码时,我得到以下两个错误:
这是代码片段,它与上面的示例中的代码片段基本相同。错误发生在班级减速上。
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的示例代码。
知道出了什么问题吗?提前谢谢。
答案 0 :(得分:1)
这些错误看起来像是试图复制按钮对象。编译器尝试自动生成MyButton复制构造函数并失败,因为QObject的复制构造函数(这是您的按钮库)是私有的。除了你列出的错误,你还应该看到像这样的东西:
note: synthesized method 'MyButton::MyButton(const MyButton&)' first required here
包含此消息后的源文件名和行号。如果您没有看到此消息,请尝试添加:
private:
Q_DISABLE_COPY(MyButton)
到MyButton类定义。然后你应该看到这个:
error: 'MyButton::MyButton(const MyButton&)' is private within this context