gpt4 book ai didi

c++ - QGraphicsWidget 作为 QObject 的 child

转载 作者:太空宇宙 更新时间:2023-11-04 11:22:51 27 4
gpt4 key购买 nike

这是否可能具有 QObjects 和(例如)QGraphicsWidgets 的树状结构?我的意思是,我不能像这样编写初始化列表:

class MyButton : public QGraphicsWidget
{
Q_OBJECT
public:
MyButton(int buttonId, QObject *parent = 0) : QObject(parent)
{
}

然后,就像

myButton = new MyButton(id, myObject);

我应该做 .setParent 还是什么?

更新:查看实际分配:

class myObject : public QObject
{
Q_OBJECT
public:
MyObject(QObject *parent = 0) : QObject(parent) {
}

MyButton *myButton;

void showButton(){
myButton = new MyButton(id, this); //no matching function for call to 'MyButton::MyButton(MyObject* const)'
//note: no known conversion for argument from 'MyObject* const' to 'QGraphicsObject*'
}
};

最佳答案

我认为您将 parent 混淆为 QObject parent/child hierarchy parent 和 parent item 在图形场景中。如果你想要前者,你需要使用通常的 setParent 机制。

无论哪种方式,构建基类的尝试都是错误的。将其替换为:

MyButton(int buttonId, QGraphicsItem *parent = 0) : QGraphicsWidget(parent)

此外,如果您使用 Qt 5,您可能希望检查 Q_NULLPTR 而不是 0NULLnullptr 和其他变体。

如果您希望图形项成为父项,那么您将需要使用继承QGraphicsItemQObjectQGraphicsObject。它们可用于两种育儿目的。

另外,由于QGraphicsWidget继承了QGraphicsObject,它可以直接用于两种父子机制。

关于c++ - QGraphicsWidget 作为 QObject 的 child ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27672137/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com