使用QImage和QRect显示图像
Display image with QImage and QRect
我正试图用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
,并设置带有背景图像的样式表。同样,使用布局(或绝对定位)将其放置在您想要的位置 - 如果您需要大量这样的元素,请使用图形视图框架
根据您的具体要求,还有一些其他变体。查看绘画示例和QPainter
文档。
相关文章:
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 如何使用OpenCV将RBG图像转换为HSV,并将H、S和V值保存为C++中的3个独立图像
- OpenCV EqualizeHist()从彩色图像创建黑白图像
- 将"打开的CV图像"中的"颜色"转换为整数格式
- 平均图像时图像损坏
- 在C++中使用GDAL可以将图像的像素坐标转换为lat,long吗
- 如何将图像传输到c++(dll)中的缓冲区,然后在c#的缓冲区中读/写
- Vulkan验证层不断在VkQueuePresentKHR()上抛出图像布局错误
- 使用FFMPEG将RGB图像序列保存到.mp4时出现问题
- 将RGB图像保存为PPM格式
- 将图像添加到资源文件夹UWP C++
- 彩色图像的卤化物处理平均值
- C++射线示踪剂ppm表示没有足够的数据来显示图像
- 重新定位图像时如何前进到下一个内存块
- 如何使用按钮更新GTK3图像以使用C++从相机捕获图片
- 为什么 BMP 图像上的 imwrite 会卡住/不返回?
- Gstreamer:每 5 秒使用多文件墨水保存图像/jpeg
- 如何使用CImg打开图像?
- 如何使用 OpenCV 解码在两个 UWP 应用之间发送的图像字节?
- 使用 CUDA 和纹理进行图像减法