我正在尝试通过开发一个简单的GUI来学习Qt。我需要做的部分是在我制作的三个QGraphicsView区域之一中添加一个矩形。我使用了以下代码
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow){
ui->setupUi(this);
QGraphicsRectItem rect;
rect.setRect(10,10,10,10);
ui->graphicsView->scene()->addRect(rect.rect());
}
然而,虽然这个编译得很好,但我的程序根本没有运行,实际上在到达它立即退出的最后一行时,是否有人知道问题可能是什么? (格式化道歉,第一次海报)
答案 0 :(得分:0)
您需要首先将场景设置为QGraphicsView
:
ui->graphicsView->setScene(new QGraphicsScene);
现在ui->graphicsView->scene()
正在返回一个空指针。
QGraphicsView::scene()
:Returns a pointer to the scene that is currently visualized in the view. If no scene is currently visualized, 0 is returned.
此外,您应该创建一个{QGraphicsRectItem
,而不是创建rect()
并使用其QRect
方法返回您将在QGraphicsScene::addRect()
中使用的QRect
对象。 1}}对象并使用:
QRect rect(10,10,10,10);
ui->graphicsView->scene()->addRect(rect);