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 @   CodeUniverse  阅读(13214)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示