记录:QLabel显示图片 & 自适应缩放。

本文介绍了如何在Qt环境中使用QLabel组件显示图片,并实现图片随窗口大小调整时按比例自适应缩放。通过加载QImage到QPixmap,设置scaled方法保持比例和使用SmoothTransformation消除锯齿,实现图片的显示。同时,通过覆盖MainWindow的paintEvent事件,动态调整QLabel的大小以适应窗口变化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Qt使用QLabel显示图片及支持缩放,小玩意儿经常用而不记,经常从头来过,记之以永绝后患。

【需求】

1、使用QLabel显示图片;

2、图片随窗口/控件的大小调整自适应调整大小(保持比例)。

【实现】

1、显示图片:

    QImage image(pic_file);
    this->pixmap = QPixmap::fromImage(image);
    ui->lb_pic->setPixmap(pixmap.scaled(ui->lb_pic->size(), Qt::KeepAspectRatio, Qt::SmoothTransformation));  // 保持比例 & 平滑缩放(无锯齿)

2、图片自适应缩放:

把QLabel放在QWidget中,QWidget不使用布局,QLabel放在左上角,查看QLabel的geometry属性,如果坐标不是(0, 0),可能有遮挡或不对称现象(不解)。

Override(重写)QWidget的上级控件MainWindow的绘制事件:

void MainWindow::paintEvent(QPaintEvent *event)
{
    ui->lb_pic->resize(ui->widget->size());
    ui->lb_pic->setPixmap(pixmap.scaled(ui->lb_pic->size(), Qt::KeepAspectRatio, Qt::SmoothTransformation));

    QMainWindow::paintEvent(event);
}

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值