【Qt】在Qlayout中Qlabel::setScaledContents(true);失效

Qlabel中添加图片,并使图片自适应Qlabel的大小

    QPixmap picture;
    picture.load("./1.jpg");
    ui->label->setScaledContents(true);//图片自适应label大小
    ui->label->setPixmap(picture);

在layout中Qlabel::setScaledContents(true);失效

解决办法,setPixmap前缩放Qixmap

    //QLabel label1 = new QLabel("hello",this);
    QString path = QCoreApplication::applicationDirPath();
    path = QFileDialog::getOpenFileName(this, "open image", path, tr("Images (*.png *.xpm *.jpg)"));
    QPixmap pixmap(path);
    //pixmap = pixmap.scaled(label1->size());//没有考虑QLabel的线宽,导致label1比加载图片前大了两个线宽
    pixmap = pixmap.scaled(label1->width()-label1->lineWidth()*2,
label1->height()-label1->lineWidth()*2);
    label1->setPixmap(pixmap);

demo代码下载

https://download.csdn.net/download/u010168781/10361038

猜你喜欢

转载自blog.csdn.net/u010168781/article/details/80009087