Qt 显示图片的三种方法

一.
直接用QLabel显示原图

   //单独显示的QLabel 其大小为内容即图片的大小,若将QLabel放入QMainWindow中则QLabel的大小为其初始大小。

    /*
    QLabel *label=new QLabel();
    QImage image("/home/ws/Pictures/cat.png");
    label->setPixmap(QPixmap::fromImage(image));
    label->show();
    */

二.给图片添加滚动条

//在QMainWindow中添加一个QScrollArea,再在QScrollArea中添加QLabel
    //用来滚动查看图片,
    //最好用代码创建,用Qtdesigner可能无法达到目的
    /*
    QMainWindow mw;

    QLabel *label=new QLabel();
    QImage image("/home/ws/Pictures/cat.png");
    label->setPixmap(QPixmap::fromImage(image));

    QScrollArea *sa=new QScrollArea(&mw);
    sa->setWidget(label);
    sa->resize(400,400);
    mw.show();
    */

效果
这里写图片描述
三.图片自适应QLabel的大小

 //指定QLabel的大小,并让图片自适应QLabel的大小
    //scaled函数可以将图片进行缩放,第一个参数是缩放后的大小,第二个参数
    //可以保持图片宽高比,在本例中label大小为400,400,宽高比为1:1,加上该参数后
    //由于原图不是1:1所以在400,400的显示区域中,并不会完全填满。若不带该参数,则会拉伸图片
    //并填满该区域
    QMainWindow mw;

    QLabel *label=new QLabel(&mw);
    label->resize(400,400);

    QPixmap pix("/home/ws/Pictures/cat.png");
    QPixmap dest=pix.scaled(label->size(),Qt::KeepAspectRatio);

    label->setPixmap(dest);
    mw.show();

保持宽高比

这里写图片描述

拉伸图片

这里写图片描述

posted @ 2017-09-10 01:41  CodeUniverse  阅读(8750)  评论(0编辑  收藏  举报