2014-11-04 151 views
-1

我已经创建了一个使用Qt Creator(Windows 7,MinGW)的Qt Widgets应用程序。如何更新Qt Widgets项目中的图形视图(Qt Creator)

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

+0

检查这个http://stackoverflow.com/questions/24961013/text-in-graphicsview-in-qt – 2014-11-04 05:29:25

+0

@ArunPrasanth要链接的回答不同的QN的问题。 – Vinod 2014-11-04 08:32:23

回答

1

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

该视图不占有场景的所有权。

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