【问题标题】:How to update Graphics View in a Qt Widgets Project(Qt Creator)如何在 Qt Widgets 项目中更新图形视图(Qt Creator)
【发布时间】:2014-11-04 14:42:32
【问题描述】:

我使用 Qt Creator(Windows 7,MinGW)创建了一个 Qt Widgets 应用程序。

我添加了一个 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 中。

【问题讨论】:

标签: c++ qt widget


【解决方案1】:

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

视图不拥有场景的所有权。

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();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-11
    • 1970-01-01
    相关资源
    最近更新 更多