QPixmap显示图片 label大小自适应

9 篇文章 0 订阅
本文介绍了如何使用QPainter在QImage和QPixmap上进行绘图,并将其显示在QLabel控件上。通过setScaledContents(true)实现QLabel图片铺满效果,并提供了按比例缩放图片以适应QLabel的方法,确保了图片的正确显示。同时,文章链接提供了详细的代码示例和博客参考。
摘要由CSDN通过智能技术生成

1.这是一个基础的介绍,分享一个很好地博客,QPainter画家,QImage QPixmap看做画布

  1. // 创建画家类对象

  2. 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)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老赵的博客

叮咚,你的赏钱已到账,嘿嘿嘿

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值