使用QImage和QRect显示图像

Display image with QImage and QRect

本文关键字:显示图 图像 显示 QRect QImage 使用      更新时间:2023-10-16

我正试图用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功能,这样我就可以移动图像。

事情不是这样运作的。图像没有显示,因为你没有做任何可以显示它的事情。而你从image.rect()得到的rect只是一组数字。它与图像没有任何连接,因此无论是否显示,更改它都不会改变图像。

这里有四种方法可以做你想做的事:

  1. 覆盖paintEvent(QPaintEvent*),并使用QPainterdrawImage例程之一在需要的位置绘制图像
  2. 使用QLabel,设置其图标,然后使用布局将其放置在所需位置
  3. 使用任何类型的QWidget,并设置带有背景图像的样式表。同样,使用布局(或绝对定位)将其放置在您想要的位置
  4. 如果您需要大量这样的元素,请使用图形视图框架

根据您的具体要求,还有一些其他变体。查看绘画示例和QPainter文档。