2012-12-14 69 views
2
ui->setupUi(this); 
scene = new QGraphicsScene(this); 
ui->graphicsView->setScene(scene); 
//scene->setSceneRect(-200,-200,300,300); 
//ui->graphicsView->setRenderHint(QPainter::Antialiasing); 

QPixmap pic (":/Single_linked_list.png"); 
//pic.load(":/Single_linked_list.png"); 
QGraphicsPixmapItem *item = new QGraphicsPixmapItem (/*pic*/); 
item->setPixmap(pic); 
scene->addPixmap(pic); 

scene->addItem(item); 
scene-> 
// scene->show(); 

//painter.drawPixmap(/*scene->sceneRect().bottomLeft().x()+0.1*/0.10,/* scene->sceneRect().bottomLeft().y()-0.1*/0.10, pic); 

上面是我的代碼,用於將圖片添加到圖形項目。它顯示的圖形場景而不是像素圖/ pixmapitem不管我做什麼。出了什麼問題,我該如何解決?Graphicsitem/pixmap在圖形場景中不顯示

我也打算進一步動畫的形象。其中容器將是最適合這個,在圖形場景picmap或圖片項目?

回答

0

場景的設置似乎罰款。你可以檢查你的場景通過在現場任意位置添加QGraphicsRectItem正常工作。

添加像素圖到您現有的一幕 -

QGraphicsPixmapItem *newItem=new QGraphicsPixmapItem(QPixmap(":/Single_linked_list.png")); 
scene->addItem(newItem); 

這將圖片項目添加到場景以及表現出來。你不需要明確地調用它來顯示圖像。

如果您想要應用平移,旋轉或縮放等常規動畫,只需使用setPos,setScale或setTransform函數即可。爲了更好的控制,你可以使用Qt提供的動畫框架。它適用於任何也即的QGraphicsItem QGraphicsPixmapItem。查看文檔以獲取更多參考。

看看這個視頻的Qt GraphicsView基礎 - http://www.youtube.com/watch?v=b35JF4LqtBs,並檢查該鏈接,簡單的QGraphicsItem動畫 - http://www.youtube.com/watch?v=fmSs2mNGh9I

1

檢查是否QPixmap的對象與給定的資源進行正確的初始化。你可以通過調用QPixmap :: isNull()來做到這一點。如果它爲空,則它沒有正確初始化,問題是資源。