我应该使用哪个Qt类来表示矩形上的图像
Which Qt class should I use to represent an image on a rectangle?
我有一个自编码的矩形(不使用QRect
进行教育),看起来是这样的:
class Block {
private: // also has getters and setters for this stuff
int m_x;
int m_y;
uint m_width;
uint m_height;
QColor m_color;
public:
Block(int x = 0, int y = 0, uint w = 64, uint h = 64);
Block(const QColor &color, int x = 0, int y = 0, uint w = 64, uint h = 64);
void paint(QPainter &painter) const
{
painter.fillRect(m_x, m_y, m_width, m_height, m_color);
}
};
现在我想添加对图像的支持,这样块就可以有颜色或图像(如果两者都提供,则使用图像)。问题是,有太多的类来表示图像(QPixmap
、QImage
、QIcon
),我不知道应该使用哪一个。区别是什么,哪一个最适合简单地将资源图像绘制成矩形?
如果要在屏幕上显示图像,请使用QPixmap
。如果要修改图像、加载图像或将其保存到文件中,请使用QImage
。
CCD_ 7基于CCD_ 8并且提供基于所请求的大小和状态来选择多个像素图中的一个的能力。QIcon
可能不是您想要的。
来自文件:
Qt提供了四个处理图像数据的类:QImage、QPixmap、QBitmap和QPicture。QImage是为I/O、直接像素访问和操作而设计和优化的,而QPixmap是为在屏幕上显示图像而设计和最优化的。QBitmap只是一个继承QPixmap的便利类,确保深度为1。最后,QPicture类是一个绘制设备,用于记录和回放QPainter命令。
QIcon类提供不同模式和状态的可扩展图标。QIcon可以从给定的一组像素图中生成更小、更大、活动和禁用的像素图。Qt小部件使用这样的像素图来显示表示特定动作的图标。
相关文章:
- 表示"accepting anything for this template argument" C++概念的通配符
- 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()从彩色图像创建黑白图像
- 如何将ampl中的集合表示为c++中的向量
- 将"打开的CV图像"中的"颜色"转换为整数格式
- std::is_base_of表示ctor编译错误
- 输入中的字符串数未知(以字母表示)
- 平均图像时图像损坏
- 我可以信任表示整数的浮点或双精度来保持精度吗
- 在C++中使用GDAL可以将图像的像素坐标转换为lat,long吗
- C++射线示踪剂ppm表示没有足够的数据来显示图像
- 表示图像矩阵的理想数据结构是什么?
- 表示RGB图像的浮点数组的初始CV::MAT
- 将卤化物与表示为浮点数组的 HDR 图像一起使用
- C++:如何解释图像的字节数组表示
- 内存中一个像素图像数据的表示形式
- opencv 中的图像表示
- 我应该使用哪个Qt类来表示矩形上的图像
- 用于图像表示的c++容器性能