当前位置: 首页 > news >正文

关于QLabel上显示图片扩展的问题记录

在构造函数中设置一个QLabel,用来显示图片;
源码如下:

	//创建预览窗口preview_ImageLabel = new QLabel();preview_ImageLabel->setFixedSize(750, 250);preview_ImageLabel->setScaledContents(true); preview_ImageLabel->setAlignment(Qt::AlignCenter);preview_Pixmap = new QPixmap(750, 250);preview_Pixmap->fill(QColor(128, 128, 128));preview_ImageLabel->setPixmap(*preview_Pixmap);preview_ImageLabel->show();

然后读取图片,并在该QLabel上显示,根据读取的图片的宽高比和该QLabel空间的宽高比进行缩放,长边扩展,短边按比例缩放;

QPixmap pixmap(filePath);if(!pixmap.isNull()){//获取QLabel的大小QSize labelSize = preview_ImageLabel->size();float imgAspect = pixmap.width() / (float)pixmap.height();QSize targetSize;// 判断长边方向if (labelSize.width() / (float)labelSize.height() < imgAspect){targetSize.setWidth(labelSize.width());targetSize.setHeight(labelSize.width() / imgAspect);}else{targetSize.setHeight(labelSize.height());targetSize.setWidth(labelSize.height() * imgAspect);}//按照宽高比缩放图片以适应QLabelpixmap = pixmap.scaled(targetSize, Qt::KeepAspectRatio, Qt::SmoothTransformation);preview_ImageLabel->setPixmap(pixmap);}else{infoWidget->setLabelText(tr("read image error !"));infoWidget->showSecs();return;}

代码本身没有问题,但是运行后,图片都不是按照上面希望的进行缩放;
逐步调试代码,也没有问题,targetSize已经按照要求计算正确;
迷茫中…

后面灵光一现,回到创建QLabel的地方仔细检查,突然发现一行代码:

preview_ImageLabel->setScaledContents(true); 

使用 QLabel::setScaledContents() 方法将 QLabel 的缩放模式设置为自适应模式

原来如此!!!

原来犯了这个错误。

如果在这里设置了自适应模式,那么不管后面再怎么设置图片的缩放,都不起作用,还是按照自适应模式缩放扩展到整个QLabel。

记录一下防止后期再犯相似的错误。以做警醒。

http://www.xdnf.cn/news/90649.html

相关文章:

  • 文件操作函数
  • PLOG安装
  • NumPy入门:从数组基础到数学运算
  • 深度学习中的“重参数化”总结
  • 正点原子TFTLCD扩展
  • 框架开发.idea配置项提示
  • 【算法】BFS-解决FloodFill问题
  • 基于 Spring Boot实现的图书管理系统
  • 强化学习框架:OpenRLHF源码解读,模型处理
  • C++ 算法(12):数组参数传递详解,值传递、指针传递与引用传递
  • pcp补丁升级手顺
  • YOLO系列面试冲刺
  • 深入理解无监督学习:探索数据的潜在结构
  • 基于TCP的协议
  • (数论)Lucas定理
  • linux 手动触发崩溃
  • 多头注意力(Multi‑Head Attention)
  • 鸣潮赞妮技能机制解析 鸣潮赞妮配队推荐
  • 路由交换网络专题 | 第六章 | OSPF | BGP | BGP属性 | 防环机制
  • RS232借助 Profinet网关与调制解调器碰撞出的火花
  • 探秘云原生架构:概念、技术、设计与反模式深度解读
  • strlen参数不匹配编译报错处理
  • 前端做模糊查询(含AI版)
  • 操作系统——堆与栈详解:内存结构全面科普
  • 电商平台比价 API 接口,避免人工比价的低效与误差
  • Mellanox网卡qos设置
  • window如何关闭指定端口
  • 嵌入式人工智能应用-第三章 opencv操作8 图像特征之LBP特征 下
  • 【C++游戏引擎开发】第20篇:基于物理渲染(PBR)——辐射度量学
  • 如何一键提取多个 PPT 幻灯片中的备注到 TXT 记事本文件中