QListWidget中自定义widget大小自适应

背景:

QListWidget中的item,可以添加自定义的widget

但是怎么去调整widget的大小呢?

参考:QT QListWidget的添加与删除,滚动条显示或隐藏,判断是否滑到顶部或底部,并使QListWidgetItem自适应大小_qlistwidgetitem自适应高度-CSDN博客

使用如下代码

void listwidgetItem::resize_size()
{adjustSize();if (item != nullptr) {item->setSizeHint(this->size());}
}

adjustSize()用于调整自定义widget大小

item是跟自定义widget绑定的QListWidgetItem,也需要调整它的大小。

下面就是自定义的widget,需要根据不同的字数来自适应不同的高度。

效果: 

 

这时候发现下面的绿色QLabel并没有自适应

很让人困扰。(后面问题解决了,但我并不理解,在此记录一下吧)

开启调试模式:

void listwidgetItem::resize_size()
{adjustSize();if (item != nullptr) {item->setSizeHint(this->size());}if (this->name == QString::fromLocal8Bit("联想应用商店")) {PRINTF_LOCATION() << this->name << "   " << this->height();PRINTF_LOCATION() << "sizehint():"<<label_introduce->sizeHint();PRINTF_LOCATION() << "size():"<<label_introduce->size();}
}

最开始时: 

d:\work\С????\main\officeassistant_msvc\listwidgetitem.cpp  at: 22 : sizehint(): QSize(720, 270)
d:\work\С????\main\officeassistant_msvc\listwidgetitem.cpp  at: 23 : size(): QSize(574, 275)

后面拖拽窗体: 

d:\work\С????\main\officeassistant_msvc\listwidgetitem.cpp  at: 22 : sizehint(): QSize(720, 270)
d:\work\С????\main\officeassistant_msvc\listwidgetitem.cpp  at: 23 : size(): QSize(1263, 270)
d:\work\С????\main\officeassistant_msvc\listwidgetitem.cpp  at: 22 : sizehint(): QSize(720, 270)
d:\work\С????\main\officeassistant_msvc\listwidgetitem.cpp  at: 23 : size(): QSize(1263, 270)

可以发现label的sizehint()一直是QSize(720,270),而高度也是270

解决方法:

添加:

label_introduce->setFixedWidth(this->width() - 50);

void listwidgetItem::resize_size()
{label_introduce->setFixedWidth(this->width() - 50);adjustSize();if (item != nullptr) {item->setSizeHint(this->size());}if (this->name == QString::fromLocal8Bit("联想应用商店")) {PRINTF_LOCATION() << this->name << "   " << this->height();PRINTF_LOCATION() << "sizehint():"<<label_introduce->sizeHint();PRINTF_LOCATION() << "size():"<<label_introduce->size();}
}

 文本内容有所修改,但不影响。

写在最后,页面效果已经达到我的预期,但中间的过程我有些不太理解,在此记录一下吧。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/185088.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Node.js【文件系统模块、路径模块 、连接 MySQL、nodemon、操作 MySQL】(三)-全面详解(学习总结---从入门到深化)

目录 Node.js 文件系统模块&#xff08;二&#xff09; Node.js 文件系统模块&#xff08;三&#xff09; Node.js 文件系统模块&#xff08;四&#xff09; Node.js 路径模块 Node.js 连接 MySQL Node.js nodemon Node.js 操作 MySQL Node.js 应用 Node.js 文件系统模块…

每日汇评:在美国通胀数据前,黄金多头变得谨慎起来

黄金价格在连续五天上涨后&#xff0c;周四早间稍作休息&#xff1b; 在个人消费支出通胀数据公布前&#xff0c;美元和美债收益率巩固了下行空间&#xff1b; 超买状况可能限制金价的上行空间&#xff0c;因为月底的资金流动可能占主导地位&#xff1b; 昨日亚盘交易时段&…

子类拷贝构造函数会调用父类拷贝构造函数吗?

一. 编译器提供的默认子类拷贝构造函数会调用父类拷贝构造函数。 #include <iostream> #include <string> using namespace std;class Parent { public:Parent(string home_address "中国") : m_home_address(home_address) {cout << "调用…

学习笔记小结

redis-cluster集群 redis3.0引入的分布式存储方案 集群由多个node节点组成&#xff0c;redis数据分布在这些节点当中。 在集群之中分为主节点和从节点 集群模式当中&#xff0c;主从一一对应&#xff0c;数据的写入和读取与主从模式一样&#xff0c;主负责写&#xff0c;从…

C陷阱与缺陷——第3章 语义陷阱

1. 指针和数组 C语言中只有一维数组&#xff0c;而且数组的大小必须在编译器就作为一个常数确定下来&#xff0c;然而在C语言中数组的元素可以是任何类型的对象&#xff0c;当然也可以是另外的一个数组&#xff0c;这样&#xff0c;要仿真出一个多维数组就不是难事。 对于一个…

Mac电脑版程序创建工具 VMware InstallBuilder Enterprise mac最新

VMware InstallBuilder Enterprise 是一款功能强大、操作简单、跨平台支持的软件安装和部署工具&#xff0c;可以让开发者更加高效地创建和部署软件&#xff0c;并提供了丰富的功能和工具&#xff0c;适用于不同的用户需求和场景。 内置调试器 轻松排除应用程序安装过程中的故…

样品实验EPONEX1510氢化双酚A环氧树脂TDS说明书

样品实验EPONEX1510氢化双酚A环氧树脂TDS说明书 200克 500克 1KG/瓶

使用Docker安装Jenkins,解决插件安装失败,版本太低等问题

如果已经遇到插件安装部分失败&#xff0c;Jenkins版本太低&#xff0c;又要换什么清华镜像地址&#xff0c;不要犹豫&#xff0c;直接以下步骤卸载重装就好了 开始安装 yum 更新到最新 yum update到Jenkins官网查找最新的LST版本 最后的版本号一定要带&#xff0c;指定下载具…

深入探索Maven:优雅构建Java项目的新方式(二)

Meven高级 1&#xff0c;属性1.1 属性1.1.1 问题分析1.1.2 解决步骤步骤1:父工程中定义属性步骤2:修改依赖的version 1.2 配置文件加载属性步骤1:父工程定义属性步骤2:jdbc.properties文件中引用属性步骤3:设置maven过滤文件范围步骤4:测试是否生效 1.3 版本管理 2&#xff0c;…

Sass 安装

文章目录 前言SASS的系统要求安装Ruby例子后言 前言 hello world欢迎来到前端的新世界 &#x1f61c;当前文章系列专栏&#xff1a;Sass和Less &#x1f431;‍&#x1f453;博主在前端领域还有很多知识和技术需要掌握&#xff0c;正在不断努力填补技术短板。(如果出现错误&…

Informer辅助笔记:data/dataloader.py

以WTH为例 import os import numpy as np import pandas as pdimport torch from torch.utils.data import Dataset, DataLoader # from sklearn.preprocessing import StandardScalerfrom utils.tools import StandardScaler from utils.timefeatures import time_featuresim…

什么是光模块光模块看我这张就够啦!

1、什么是光模块 信号在光网络中传输时&#xff0c;必须进行光/电转换。光模块就是专门在光网络中完成光/电转换工作的部件。光模块的外观结构如图1所示&#xff0c;简单的来说&#xff0c;双绞线最大传输距离是100米&#xff0c;用的是电信号&#xff0c;那如果说传输距离超过…

骨传导能保护听力吗?使用骨传导有没有副作用?

先说结论&#xff0c;骨传导耳机是可以保护听力的&#xff0c;如果是正常的使用骨传导耳机&#xff0c;是不会有任何副作用的。 一、为什么说骨传导耳机能保护听力 1、佩戴方式更健康 由于骨传导耳机采用耳挂式佩戴&#xff0c;在使用的时候开放双耳&#xff0c;不会堵塞耳道…

如何使用vs2022通过excel.exe生成VC、C++能够使用的头文件

我们在开发MFC、VC、C项目时&#xff0c;有时候需要操作excel文件的读写&#xff0c;我们一般常用方式是调用微软的excel驱动方式调用&#xff0c;但调用驱动前&#xff0c;我们需要生成我们C能够调用到的头文件&#xff0c;一般常用文件有&#xff1a; #include "CAppli…

GPT-4 惨遭削弱;拼多多市值一度超阿里;雷军回应个人向武汉大学捐款 13 亿元丨 RTE 开发者日报 Vol.96

开发者朋友们大家好&#xff1a; 这里是 「RTE 开发者日报」 &#xff0c;每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE &#xff08;Real Time Engagement&#xff09; 领域内「有话题的 新闻 」、「有态度的 观点 」、「有意思的 数据 」、「有…

卷轴模式:金融领域的新趋势

卷轴模式在金融领域逐渐崭露头角&#xff0c;成为一种新型的投资策略。这种模式基于完成任务或达成特定目标来获取积分&#xff0c;利用这些积分进行投资或获取现实物品。它不同于传统的资金盘&#xff0c;而是以一种更稳健的方式运作&#xff0c;避免了资金盘的风险。 一、卷轴…

智能优化算法应用:基于帝国主义竞争算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于帝国主义竞争算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于帝国主义竞争算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.帝国主义竞争算法4.实验参数设定5.算…

供应商关系管理软件:如何使用它来改善供应商关系?

从最基本的角度来说&#xff0c;企业需要供应商为其生产和销售的产品或服务提供原材料&#xff0c;或者为其提供资源和服务来经营自己的业务。 建立稳定而健康的供应商关系的最大优势之一&#xff0c;就是可以为企业带来更高的价值。企业对供应商了解越多&#xff0c;供应商对…

富必达API:一站式无代码开发集成电商平台、CRM和营销系统

一站式无代码开发的连接解决方案 电子商务、客户服务系统以及其它商业应用&#xff0c;是现代企业运营的重要部分。然而&#xff0c;将这些系统进行有效的整合往往需要复杂的API开发&#xff0c;这对很多企业来说是一个巨大的挑战。富必达API以其一站式的无代码开发解决方案&a…

Java小游戏 王者荣耀(简易版)

GameFrame类 所需图片&#xff1a; package 王者荣耀;import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.io.File; import java.util.ArrayList…