添加QRectGraphicsItem

时间:2014-05-02 03:25:17

标签: qt qgraphicsview

我正在尝试通过开发一个简单的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());
}

然而,虽然这个编译得很好,但我的程序根本没有运行,实际上在到达它立即退出的最后一行时,是否有人知道问题可能是什么? (格式化道歉,第一次海报)

1 个答案:

答案 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);