使用QImage和QRect显示图像

时间:2012-01-21 14:47:53

标签: c++ image qt

我正在尝试用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功能,以便我可以移动图像。

1 个答案:

答案 0 :(得分:4)

这不是事情的运作方式。不显示图像,因为您没有做任何会显示它的图像。您从rect获得的image.rect()只是一组数字。它没有以任何方式连接到图像,因此更改它不会改变图像是否显示。

以下是四种方法:

  1. 覆盖paintEvent(QPaintEvent*),并使用QPainter的{​​{3}}例程之一绘制图像。
  2. 使用QLabel,设置其图标,并使用布局将其放置在您想要的位置。
  3. 使用任何类型的QWidget,并将drawImage设置为背景图片。再次,使用布局(或绝对定位)将其放在您想要的位置。
  4. 如果您需要大量此类元素,请使用style sheet框架。
  5. 根据您的具体要求,还有其他一些变体。查看Graphics Viewpainting examples文档。