2012-01-21 51 views
3

我想用Qt製作遊戲,但是我無法加載圖像。用QImage和QRect顯示圖像

#include "mainwindow.h" 

MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) 
{ 
image.load("F:/My Workspace/sprite.png"); 
rect = image.rect(); 
rect.moveTo(5,5); 
} 

這是窗口的構造函數。圖像不顯示。我知道如何使用QLabel顯示圖像,但我想使用QRect功能,以便可以移動圖像。

+0

你不能。你的矩形只是...一個矩形!它無法顯示圖像。 – Lol4t0

+0

然後他們是如何在槳上使用長方形的? http://zetcode.com/tutorials/qt4tutorial/breakoutgame/ – Kanghu

+0

他們稍後使用'rect'作爲提示繪製圖像 – Lol4t0

回答

4

這並不是如何工作。圖片不會顯示,因爲您沒有做任何可以顯示它的內容。而你從image.rect()得到的rect只是一組數字。它沒有以任何方式連接到圖像,所以更改它不會改變圖像是否顯示。

這裏有四種方法可以做到你想要什麼:

  1. 覆蓋paintEvent(QPaintEvent*),並畫出你想要使用QPainterdrawImage程序的一個形象。
  2. 使用QLabel,設置其圖標並使用佈局將其放置在您想要的位置。
  3. 使用任何類型的QWidget,並將背景圖像設置爲style sheet。再次,使用佈局(或絕對定位)來獲得它想要的位置。
  4. 如果您需要很多這樣的元素,請使用Graphics View框架。

這些還有一些其他的變化,這取決於您的確切要求。查看painting examplesQPainter文檔。