gpt4 book ai didi

qt - 添加 QGraphicsProxyWidget 时崩溃

转载 作者:行者123 更新时间:2023-12-02 12:03:08 27 4
gpt4 key购买 nike

我尝试在场景中添加 QPushButton,但是当我尝试将 QGraphicsProxyWidget 添加到场景时,它崩溃了。

所以这是.cpp:

#include "upgradecromagnon.h"
#include "game.h"
#include <QGraphicsProxyWidget>
#include <qDebug>

extern Game *game;
UpgradeCromagnon::UpgradeCromagnon()
{

this->setRect(-50,0,150,50);
buttonAmelio = new QPushButton("salut");
teste();
}

void UpgradeCromagnon::teste()
{
QGraphicsProxyWidget *proxy = new QGraphicsProxyWidget();
proxy->setWidget(buttonAmelio);
scene()->addItem(proxy);
}

及其.h:

#ifndef UPGRADECROMAGNON_H
#define UPGRADECROMAGNON_H
#include <QPainter>
#include <QGraphicsRectItem>
#include <QPushButton>
class UpgradeCromagnon: public QGraphicsRectItem
{
public:
UpgradeCromagnon();
void teste();
private:
QPushButton *buttonAmelio;
};

#endif // UPGRADECROMAGNON_H

最佳答案

您的 UpgradeCromagnon 构造函数调用 UpgradeCromagnon::teste,而 UpgradeCromagnon::teste 又调用 QGraphicsItem::scene。此时,QGraphicsItem::scene 必须返回空指针,因为不可能将 UpgradeCromagnon 实例添加到 QGraphicsScene 在其构造函数完成之前(无论如何不根据您提供的代码)。

关于qt - 添加 QGraphicsProxyWidget 时崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38588440/

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