0


使用QLable显示图片

QLabel主要用来显示文本的组件,但是也有显示图片的方法,下面介绍一下如何用QL abel显示图片。

向QLabel中添加图片

可以使用QImage读取图片再通过QPixmap方法在QLabel中显示
也可以直接使用QPixmap读取图片,显示。他们的效果都是一样的。

    QImage img("wife.jpeg");
    ui->label->setPixmap(QPixmap::fromImage(img));//    QPixmap pix;//    pix.load("wife.jpeg");//    ui->label->setPixmap(pix);

在这里插入图片描述
显然,这是因为label的大小,导致不能将图片全部显示出来,那么我们重新设置label大小是不是就可以了?

设置QLabel位置与大小

使用setGeometry函数

由于QLabel是从QWidget中继承而来,所以直接使用QWidget::setGeometry函数

voidQWidget::setGeometry(int x,int y,int w,int h)

(x, y)表示其在窗口中的位置,(w, h)表示,确定位置后窗口的宽和长,这样就确定了一个窗口具体的位置和大小。
这里,我们将QLabel设置成和MainWindow一样大,再看一下QLabel显示图片。

    QImage img("wife.jpeg");int WindowW =this->width();int WindowH =this->height();
    ui->label->setGeometry(0,0, WindowW, WindowH);
    ui->label->setPixmap(QPixmap::fromImage(img));

在这里插入图片描述
虽然显示了图片很多内容,但是还是不能将图片全部显示出来,这里就可以使用缩放的方法,将图片按照一定的比例缩放,然后再放入QLabel中来。

scaled()函数缩放图片

QImage QImage::scaled(const QSize &size, Qt::AspectRatioMode aspectRatioMode = Qt::IgnoreAspectRatio, Qt::TransformationMode transformMode = Qt::FastTransformation)const
  1. size表示给定缩放后的尺寸。
  2. aspectRatioMode 选择缩放的模式,如果是IgnoreAspectRatio模式(缺省)即按照给定的尺寸显示; KeepAspectRatio,则按照给定的尺寸将图像缩放为内部大小尽可能大的矩形,从而保留纵横比。 KeepAspectRatioByExpanding,则图像将缩放为一个外部尺寸尽可能小的矩形,从而保持纵横比。 我们这里选择KeepAspectRatio模式即可。
  3. TransformationMode 模式,是否让图像看起来更平滑。 Qt::FastTransformation(缺省),执行的更快,没有平滑。 Qt::SmoothTransformation,使得图像更平滑。 这里选择Qt::SmoothTransformation。
    QImage img("wife.jpeg");int WindowW =this->width();int WindowH =this->height();
    ui->label->setGeometry(0,0, WindowW, WindowH);
    QImage scalimg = img.scaled(ui->label->size(), Qt::KeepAspectRatio, Qt::SmoothTransformation);
    ui->label->setPixmap(QPixmap::fromImage(scalimg));

在这里插入图片描述
这样就可以看到完整的老婆了

标签: qt ui 开发语言

本文转载自: https://blog.csdn.net/LSC__lsc/article/details/129649752
版权归原作者 LSC__lsc 所有, 如有侵权,请联系我们删除。

“使用QLable显示图片”的评论:

还没有评论