1.这是一个基础的介绍,分享一个很好地博客,QPainter画家,QImage QPixmap看做画布
// 创建画家类对象
QPainter p(this); // 指定绘图设备,其中设备可以是控件QLabel,也可以是先在QImage上画图,然后设置在控件
ui->label->setPixmap(QPixmap::fromImage(Img));
https://blog.csdn.net/qq_32619837/article/details/103698140https://blog.csdn.net/qq_32619837/article/details/103698140
2. 使用QPixmap在QLable上显示图片时,会经常存在label和图像尺寸自适应的问题:
首先如果想要设置铺满lable,要有如下设置
ui.m_pLabelImg->setScaledContents(true); //让图片填充满QLabel
再配合scale函数,就可以实现你想要的结果:铺满lable或者保持图片比例
其中scaled函数中几个参数的说明,看下边这个博客就可以
【Qt】QPixmap按比例缩放图片。_momodosky的博客-CSDN博客_qpixmap 等比例缩放
#自适应lable
width = QtImg.width() ##获取图片宽度
height = QtImg.height() ##获取图片高度
if width / self.label.width() >= height / self.label.height(): ##比较图片宽度与label宽度之比和图片高度与label高度之比
ratio = width / self.label.width()
else:
ratio = height / self.label.height()
new_width = width / ratio ##定义新图片的宽和高
new_height = height / ratio
jpg_out = QtGui.QPixmap(QtImg).scaled(int(new_width), int(new_height), QtCore.Qt.IgnoreAspectRatio,
QtCore.Qt.SmoothTransformation)
self.label.setPixmap(jpg_out)