首页 > 其他分享 >Qt Label 显示图片

Qt Label 显示图片

时间:2024-11-19 19:56:16浏览次数:1  
标签:Qt Label label mw 400 图片 QPixmap QLabel

一般这样子:

// 跟随比例变化
ui->label->setScaledContents(true);
QPixmap pixmap("./01.jpg");
//pixmap.load("./01.jpg");
// 让图片大小适应控件大小, 如果不需要,可以直接显示原图
QPixmap s_img = pixmap.scaled(ui->label->size(), Qt::KeepAspectRatio, Qt::SmoothTransformation);
ui->label->setPixmap(s_img);

直接显示:

//单独显示的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();

可以使用QImage::fromData直接读取二进制:

QFile file("2.png"); // 实际为jpeg格式
file.open(QIODevice::ReadOnly);
QByteArray data = file.readAll();
qDebug() << QImage::fromData(data);

输出:QImage(QSize(1048, 1234),format=QImage::Format_RGB32,depth=32,devicePixelRatio=1,bytesPerLine=4192,sizeInBytes=5172928)

可看这篇博文:https://cloud.tencent.com/developer/article/1601595




参考:

  1. https://blog.csdn.net/sunatmine/article/details/109224468
  2. https://www.cnblogs.com/CodingUniversal/p/7500007.html

标签:Qt,Label,label,mw,400,图片,QPixmap,QLabel
From: https://www.cnblogs.com/huvjie/p/18555503

相关文章

  • Qt 16进制颜色 QColor
    一、16进制转rgb(a)1、QColor类可以通过字符串作为参数来创建表示RGBA值的颜色对象。字符串必须满足以下格式,RGB(红、绿、蓝):#RRGGBB或者#RGB,其中RR、GG、BB表示16进制的红、绿、蓝分量的值。RGBA(红、绿、蓝、透明度):#RRGGBBAA或者#RGBA,其中RR、GG、BB表示16......
  • 移动端Vue2实现文件图片上传功能
    基于Vue2 +Vant2组件库实现:废话不多说,直接看代码:主要代码:methods:{//上传图片之前的操作beforeRead(file){letarr=file.name.split('.');letfileType='.'+arr[arr.length-1].toLowerCase();con......
  • AI大模型实现图片OCR识别
    背景    OCR(OpticalCharacterRecognition,光学字符识别)是一种将图像中的文字转换为机器编码文本的技术。这项技术可以自动读取纸质文档上的文字信息,并将其转换成电子格式,便于编辑、存储和检索。OCR技术在很多领域都有广泛应用,比如数据录入、文献数字化、辅助阅读设备等......
  • 【裂纹检测】检测和标记图片中的裂缝(Matlab代码实现)
    ......
  • Ubuntu Qt5 源码的下载和编译
    Ubuntu18下载和编译Qt5源码下载源码wgethttps://mirrors.aliyun.com/qt/archive/qt/5.15/5.15.2/single/qt-everywhere-src-5.15.2.tar.xz解压缩tar-xfqt-everywhere-src-5.15.2.tar.xz-C/tmp/cd/tmp/qt-everywhere-src-5.15.2配置并编译./configure-prefix/h......
  • 实现简易计算器 网格布局 QT环境 纯代码C++实现
    问题:通过代码完成一个10以内加减法计算器。不需要自适应,界面固定360*350。"="按钮90*140,其它按钮90*70。参考样式#defineDEFULT_BUTTON_STYLE"\QPushButton{\color:#000000;\border:1pxsolid#AAAAAA;\border-radius:0;\background-color:#FFFFFF;......
  • 百度UEDITOR编辑器复制粘贴图片上传
    编辑器:百度ueditor前端:vue2,vue3,vue-cli,html5需求:复制粘贴word内容图片,word图片转存交互,导入pdf,导入PowerPoint(PPT)要求:开源,免费,技术支持用户体验:Ctrl+V快捷键操作该说不说,最近这块应该也是挻火的,今天早上又有网友加我微信私聊,说是想了解一下这块的技术和方案。实......
  • 【每日一题】661. 图片平滑器
    图像平滑器 是大小为 3x3 的过滤器,用于对图像的每个单元格平滑处理,平滑处理后单元格的值为该单元格的平均灰度。每个单元格的 平均灰度 定义为:该单元格自身及其周围的8个单元格的平均值,结果需向下取整。(即,需要计算蓝色平滑器中9个单元格的平均值)。如果一个单元格周......
  • 鸿蒙项目实战(五):识别本地图片
    基本概念图片识码能力支持对图库中的码图进行扫描识别,并获取信息场景介绍图片识码能力支持对图库中的条形码、二维码、MULTIFUNCTIONALCODE进行识别,并获得码类型、码值、码位置信息该能力可用于一图单码和一图多码的识别,比如条形码、付款码等使用示例1、导入图片识码接......
  • 如何在 Ubuntu 上安装 Mosquitto MQTT 代理
    如何在Ubuntu上安装MosquittoMQTT代理Mosquitto是一个开源的消息代理,实现了消息队列遥测传输(MQTT)协议。在Ubuntu22.04上安装MQTT代理,您可以利用MQTT轻量级的TCP/IP消息平台,该平台专为资源有限的物联网(IoT)设备设计,例如带宽低或电池寿命短的设备。Mos......