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

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);
}

 

 

 

你可能感兴趣的:(Qt,编码,开发环境,qt)