2014-11-04 98 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();