使用QImage和QRect显示图像

3

我正在使用Qt制作游戏,但是无法加载图像。

#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功能使图像移动。


你不能这样做。你的矩形只是一个矩形!它无法显示图像。 - Lol4t0
那么他们是如何在挡板上使用矩形的呢?http://zetcode.com/tutorials/qt4tutorial/breakoutgame/ - Kanghu
他们后来使用 rect 作为绘制图像的提示。 - Lol4t0
1个回答

4
这不是实现这一点的方法。图像没有显示,因为你没有做任何会显示它的事情。从image.rect()获得的rect只是一组数字,与图像没有任何关联,所以无论是否显示它,改变它都不会改变图像。
以下是四种实现您想要的方法:
  1. 重写paintEvent(QPaintEvent*),并使用QPainterdrawImage例程之一在所需位置绘制图像。
  2. 使用QLabel,设置其图标,并使用布局将其放置在所需位置。
  3. 使用任何类型的QWidget,并设置具有背景图像的样式表。同样,使用布局(或绝对定位)将其放置在所需位置。
  4. 如果需要大量这样的元素,请使用Graphics View框架。
根据您的确切要求,还有其他几种变化。查看painting examplesQPainter文档。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接