QT gridlayout 循环设置组件,表格也通用 已解决

news2024/9/30 17:32:49

在需求中。经常遇到,表格 展示需求。 几乎都是json格式的。 

// 列表配置文件
	QJsonArray listJsonArray = getCfgJsonData("details_tab_table_config.json");
	if (listJsonArray.isEmpty())
	{
		return;
	}

	ui->gridWidget->setMaximumSize(QSize(310, 180));
	ui->gridWidget->setMinimumSize(QSize(310, 180));
	int row = 0;
	int column = 0;

	for (int i = 0; i < listJsonArray.size(); ++i)
	{
		if (column == 1)
		{
			column = 0;
			row += 1;
		}

		column += 1;

		QJsonValue jsonValue = listJsonArray.at(i);
		bool bShow = jsonValue.toObject().value("is_show").toBool();
		QString name = jsonValue.toObject().value("name").toString();
		QString value = jsonValue.toObject().value("value").toString();

		QLabel* pName = new QLabel();
		pName->setText(name);
		pName->setAlignment(Qt::AlignCenter);
		pName->setMaximumWidth(100);
		pName->setMaximumHeight(38);
		pName->setStyleSheet("QLabel{ border-right: 1px solid #1C88E5; background-color:rgba(0, 51, 204, 0.3); color: #FFFFFF; font-size:14px; font-bold:10px;  }");

		QLabel* pValue = new QLabel();
		pValue->setText(name);
		pValue->setMaximumHeight(38);
		pValue->setAlignment(Qt::AlignVCenter);
		pValue->setStyleSheet("QLabel{ border:none; margin-left:5px; color: #FFFFFF; font-size:14px; font-bold:10px;  }");

		//中间用个空widget隔开
		QWidget* widget = new QWidget;
		if (i == 0)
		{
			widget->setStyleSheet("QWidget{border-top: 1px solid #1C88E5;border-left: 1px solid #1C88E5;border-right: 1px solid #1C88E5;}");
		}

		if (i > 0 && i < listJsonArray.size())
		{
			widget->setStyleSheet("QWidget{border: 1px solid #1C88E5;border-bottom:none;}");
		}

		if (i == listJsonArray.size())
		{
			widget->setStyleSheet("QWidget{border-bottom: 1px solid #1C88E5; border-left: 1px solid #1C88E5;border-right: 1px solid #1C88E5;}");
		}

		QHBoxLayout* layout = new QHBoxLayout(widget);
		layout->setContentsMargins(0, 0, 0, 0);
		layout->addWidget(pName);
		layout->addWidget(pValue);

		ui->gridLayout_2->addWidget(widget, row, column);
	}

函数


QJsonArray CCendDetailsTabWidget::getCfgJsonData(QString jsonStr)
{
	QJsonArray jsonArray;

	QString jsonPathStr = getConfigPath(jsonStr);
	QFile jsonFile(jsonPathStr);

	if (jsonFile.exists() && jsonFile.open(QIODevice::ReadOnly | QIODevice::Text))
	{
		jsonArray = QJsonDocument::fromJson(jsonFile.readAll()).array();
	}

	return jsonArray;
}

QString CCendDetailsTabWidget::getConfigPath(QString fileName)
{
	QString appDirPath = QCoreApplication::applicationDirPath();
	return appDirPath + "/config/" + fileName;
}

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

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

相关文章

定制红酒:品质保障,从源头做起

云仓酒庄的洒派定制红酒&#xff0c;以其卓着的品质和与众不同的口感&#xff0c;赢得了众多消费者的喜爱。而这种品质的保障&#xff0c;正是从源头上开始的。 在葡萄种植方面&#xff0c;种植者对土壤、气候等自然条件进行严格的筛选和评估&#xff0c;确保葡萄能够在理想的环…

去中心化的 AI 数据供应:认识Grass,参与Grass

去中心化的 AI 数据供应&#xff1a;认识Grass&#xff0c;参与Grass &#x1f44b;&#xff1a;邀请链接☘️&#xff1a;Intro❓&#xff1a;看好Grass和即将推出的L2的原因有哪些&#xff1f;&#x1f4a1;&#xff1a;展望&#x1f50d;&#xff1a;总结 &#x1f44b;&…

express+mysql+vue,从零搭建一个商城管理系统15--快递查询(对接快递100)

提示&#xff1a;学习express&#xff0c;搭建管理系统 文章目录 前言一、安装md5&#xff0c;axios二、新建config/logistics.js三、修改routes/order.js四、查询物流信息五、试错与误区总结 前言 需求&#xff1a;主要学习express&#xff0c;所以先写service部分 快递100API…

测径仪:大小通吃的“直径判官”

嗨&#xff0c;大家好&#xff01;今天我要给你们介绍一个超级厉害的玩意儿——在线测径仪&#xff01;它可不是一般的测量工具&#xff0c;它是那个能让直径无处遁形的“直径判官”&#xff01; 想象一下&#xff0c;有了在线测径仪&#xff0c;你就像是拥有了一双超级敏锐的“…

【Web】记录CISCN 2021 总决赛 ezj4va题目复现——AspectJWeaver

目录 前言 原理分析 step 0 step 1 EXP 前文&#xff1a;【Web】浅聊Java反序列化之AspectJWeaver——任意文件写入-CSDN博客 前言 这就是当年传说中的零解题嘛&#x1f62d;&#xff0c;快做&#x1f92e;了 有了之前的经验&#xff0c;思路顺挺快的&#xff0c;中间不…

嵌入式Linux系统中控制显示屏的方法

第一:循环显示图片方法 第二:循环显示jpeg图片方法

手拉手Java爬虫HttpClient

JAVA爬虫 HttpClient HttpClient 是Apache Jakarta Common 下的子项目&#xff0c;可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包&#xff0c;并且它支持 HTTP 协议最新的版本和建议。 使用 HttpClient 的 6 个步骤 1. 创建 HttpClient 的实例 2…

深度学习新篇章:PyTorch在遥感地物分类的革命性应用

我国高分辨率对地观测系统重大专项已全面启动&#xff0c;高空间、高光谱、高时间分辨率和宽地面覆盖于一体的全球天空地一体化立体对地观测网逐步形成&#xff0c;将成为保障国家安全的基础性和战略性资源。未来10年全球每天获取的观测数据将超过10PB&#xff0c;遥感大数据时…

四种最新算法(小龙虾优化算法COA、螳螂搜索算法MSA、红尾鹰算法RTH、霸王龙优化算法TROA)求解机器人路径规划(提供MATLAB代码)

一、机器人路径规划介绍 移动机器人&#xff08;Mobile robot&#xff0c;MR&#xff09;的路径规划是 移动机器人研究的重要分支之&#xff0c;是对其进行控制的基础。根据环境信息的已知程度不同&#xff0c;路径规划分为基于环境信息已知的全局路径规划和基于环境信息未知或…

Simulink无法求解/代数环/数值问题/求解器不收敛

运行仿真时出错&#xff0c;仿真终止 原因: Simulink cannot solve the algebraic loop containing Gain at time 1.0000000000000142 due to one of the following reasons: the model is ill-defined i.e., the system equations do not have a solution; or the nonlinear …

Linux:文件读取指令

Linux&#xff1a;文件读取指令 cat指令more指令less指令head指令 & tail指令grep指令 cat指令 cat指令用于查看目标文件的内容。 语法&#xff1a;cat [选项][文件] 比如直接使用cat读取一个文件&#xff1a; 可以看到&#xff0c;其直接在指令的下方&#xff0c;输出了t…

嵌入式开发--STM32G431RBTx-产生PWM

嵌入式开发–STM32G431RBTx-产生pwm 定时器工作原理 如图有反映stm32g431的定时器资源。 共10个定时器 定时器定时器类型个数TIM6&#xff0c;7基本定时器2TIM2&#xff0c;3&#xff0c;4全功能通用定时器3TIM15&#xff0c;16&#xff0c;17通用定时器(只有1或2个通道)3TI…

计算机二级大题

题目来源&#xff1a;计算机二级Python半个月抱佛脚大法&#xff08;内呈上真题版&#xff09; - 知乎 1.大题1 注意csv文件读取的处理 ls[] for line in f: ls.append(line.strip(\n).split(,)) 2. 大题2 第一问&#xff1a; #计算有效票张数 fopen("vote.txt",…

普发Pfeiffer分子泵TMH-U1001PC-1601PC安装使用维护说明

普发Pfeiffer分子泵TMH-U1001PC-1601PC安装使用维护说明

【十七】【算法分析与设计】前缀和(2)

238. 除自身以外数组的乘积 给你一个整数数组 nums&#xff0c;返回 数组 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法&#…

碳素光线疗法——动,植物 光育实验

碳素光线疗法——动&#xff0c;植物 光育实验 碳素光线疗法&#xff1a; 中西医、民间疗法融为一体&#xff0c;提高机体自身治愈力&#xff0c;免疫力&#xff0c;改善体质和保持健康&#xff0c;有助于疾病的预防和治疗的疗法。不吃药、不打针、不手术也能得健康&#xff0c…

【Grass Mining】教程

Grass 为用户提供了一种利用网络资源进行Mining的新途径。以下是一份简化的指南&#xff0c;帮助您轻松开始在 Grass 上的Mining活动。 开始之前&#xff1a;注册 Grass 账户 首先&#xff0c;访问 Grass 官方网站进行账户注册。如果遇到注册过程中出现的“失败”提示&#x…

Android Jetpack:简化开发、提高Android App质量的利器

Android Jetpack&#xff1a;简化开发、提高Android App质量的利器 1. Jetpack的概念和目标 Jetpack是一套库、工具和指南&#xff0c;旨在帮助开发者更轻松地编写高质量的应用程序。这些组件帮助开发者遵循最佳实践&#xff0c;减少样板代码的编写&#xff0c;并简化复杂的任…

2024年,抖音小店无货源怎么做?一篇全解!

大家好&#xff0c;我是电商糖果 无货源不能做了&#xff1f; 以后是不是要商家自己进货&#xff0c;囤货了&#xff1f; 无货源未来还有发展前景吗&#xff1f; ....... 这些问题&#xff0c;从2022年就有不少朋友开始问&#xff0c;一直到2024年。 糖果做无货源电商已经…

训练YOLOv9-S

1. YOLOv9-S网络结构 1.1 改前改后的网络结构&#xff08;参数量、计算量&#xff09;对比 修改前调用的yolo.py测试的yolov9.yaml的打印网络情况&#xff0c;包含参数量、计算量 修改后调用的yolo.py测试的yolov9.yaml的打印网络情况&#xff0c;包含参数量、计算量 1.2 …