我正在尝试使用 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
只是一组数字。它与图像没有任何关系,因此无论是否显示,更改它都不会改变图像。
这里有四种方法可以做你想做的事:
- 覆盖
paintEvent(QPaintEvent*)
,并使用QPainter
的drawImage
之一在您想要的位置绘制图像例程。 - 使用
QLabel
,设置其图标,并使用布局将其放置在您想要的位置。 - 使用任何类型的
QWidget
,并设置style sheet与背景图像。同样,使用布局(或绝对定位)将其放置在您想要的位置。 - 使用Graphics View如果您需要大量此类元素,则可以使用框架。
根据您的具体要求,还有一些其他变体。查看painting examples , 和 QPainter
文档。
关于c++ - 用 QImage 和 QRect 显示图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8953871/