如何在Qt小工具项目中更新图形视图(Qt Creator)

How to update Graphics View in a Qt Widgets Project(Qt Creator)

本文关键字:Qt 视图 图形 更新 Creator 项目 工具      更新时间:2023-10-16

我已经使用Qt Creator(Windows 7,MinGW)创建了一个Qt小工具应用程序。

我添加了一个GraphicsView(命名为graphicsView)和一个按钮(命名为pbClick)。

on_pbClick_clicked()函数如下所示:

void MainWindow::on_pbClick_clicked()
{
    QGraphicsScene scene;
    //adding some text to the scene
    scene.addText("Hello, world!", QFont("Times", 20, QFont::Bold));
    ui->graphicsView->setScene(&scene);
    ui->graphicsView->show();
}

当我单击pbClick按钮时,graphicsView内不会发生任何事情。

我如何才能在graphicsView中显示"你好,世界!"文本。

如果在堆栈上创建场景,这是一个问题,请尝试在堆上创建它(使用指针)。在这种情况下,如果没有任何错误,一切都应该正常。正如医生所说:

视图不会取得场景的所有权。

http://qt-project.org/doc/qt-5/qgraphicsview.html#setScene

这意味着当您在堆栈上创建场景时,该场景将在on_pbClick_clicked插槽的"最后"被删除。所以你的场景已经不存在了,你什么也看不见。

    QGraphicsScene *scene = new QGraphicsScene;
    //adding some text to the scene
    scene->addText("Hello, world!", QFont("Times", 20, QFont::Bold));
    ui->graphicsView->setScene(scene);
    ui->graphicsView->show();