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

在需求中。经常遇到,表格 展示需求。 几乎都是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;
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Matlab在高光谱遥感中的作用:从数据处理到决策支持

光谱和图像是人们观察世界的两种方式&#xff0c;高光谱遥感通过“图谱合一”的技术创新将两者结合起来&#xff0c;大大提高了人们对客观世界的认知能力&#xff0c;本来在宽波段遥感中不可探测的物质&#xff0c;在高光谱遥感中能被探测。以高光谱遥感为核心&#xff0c;构建…

【机器学习300问】44、P-R曲线是如何权衡精确率和召回率的?

关于精确率和召回率的基础概念我已经写了两篇文章&#xff0c;如果友友还不知道这两个评估指标是什么&#xff0c;可以先移步去看看这两篇文章&#xff1a; 【机器学习300问】25、常见的模型评估指标有哪些&#xff1f;http://t.csdnimg.cn/JtuUO 总结一下这两个概念&a…

进度图画法

exce表格进度图画法&#xff0c;体现在条形图以及“格子”的空间的填充两种办法。 1.excel表格画进度图 备注&#xff1a;表格照着就是可以了&#xff0c;主要是画直线的办法 在形状的下拉菜单中选择直线&#xff0c;按住shift&#xff08;可以画直线&#xff09; 画直线后&a…

一站式App流量统计,Xinstall助您洞悉用户行为

在如今的移动互联网时代&#xff0c;App的推广和运营对于开发者来说至关重要。然而&#xff0c;想要精准掌握App的流量情况&#xff0c;却并不是一件容易的事情。这时&#xff0c;一款强大的App流量统计工具就显得尤为重要。而Xinstall&#xff0c;正是这样一款能够帮助开发者轻…

收集数据的二维码怎么做?创建表单活码的制作方法

通过二维码来收集用户信息是现在经常被使用的一种方式&#xff0c;通过扫码二维码展现表单&#xff0c;用户根据问题填写自己的想法或者信息&#xff0c;有效的简化用户操作的流程&#xff0c;也能够提升管理者获取信息的速度&#xff0c;能够快速针对用户数据做分析。 那么表…

PLC常用通信协议应用

PLC通信协议 ModbusModbus协议介绍Modbus协议的应用Modbus通信模式 Modbus RTU通讯Modbus RTU报文映射寄存器常见功能码数据类型Modbus CRC校验计算Modbus RTU举例&#xff08;读位&#xff09;Modbus RTU举例&#xff08;读字&#xff09; Modbus TCP协议应用TCP数据帧Modbus …

从0到1:企业官网小程序开发笔记(一)

可行性研究 企业公司官网小程序 &#xff0c;旨在为企业建立一个在线的官方网站&#xff0c;并提供公司的信息、产品、服务和联系方式等。它扩展了传统企业官网的功能&#xff0c;使用户能够通过微信小程序的便利性和互动性&#xff0c;方便用户随时随地获取企业信息&#xff…

ShardingSphere啦啦啦

N年前写的ShardingSphere部分&#xff08;上&#xff09;_sharding 分库不能sum-CSDN博客 https://shardingsphere.apache.org/document/current/en/quick-start/ 高性能架构模式&#xff1a; 读写分离&#xff1a;读写操作分散到不同的节点上 (这句话 我悟了) 据SQL语义分…

Elsevier(爱思唯尔)如何查询特刊special issue

1. 以Knowledge-Based Systems为例 网站&#xff1a;https://www.sciencedirect.com/journal/knowledge-based-systems 2.具体位置

网络工程师练习题6

网络工程师 综合题 计算并填写下表&#xff1a; TP地址191.23.181.13子网掩码255.255.192.0地址类型 &#xff08;1&#xff09;网络地址&#xff08;2&#xff09;直接广播地址&#xff08;3&#xff09;主机号&#xff08;4&#xff09;子网内的最后一个可用IP地址&#xf…

OrangeDAO联合创始人Don Ho确认出席Hack.Summit() 2024区块链开发者大会

随着Web3技术的快速发展&#xff0c;区块链领域备受关注的盛会——Hack.Summit() 2024 区块链开发者大会即将于 2024 年 4 月 9 日至 10 日在香港数码港隆重启幕。本次大会不仅是 Hack.Summit() 系列在亚洲的首次亮相&#xff0c;更象征着全球区块链行业对亚洲&#xff0c;尤其…

基于SpringBoot的网上订餐系统(含源文件)

&#xff08;源码附文章底部&#xff09; 摘 要 随着我国经济的飞速发展&#xff0c;人们的生活速度明显加快&#xff0c;在餐厅吃饭排队的情况到处可见&#xff0c;近年来由于新兴IT行业的空前发展&#xff0c;它与传统餐饮行业也进行了新旧的结合&#xff0c;很多餐饮商户开始…

2024年了,为何 Selenium 依然这么火?

今天给大家带来的主题是自动化测试框架Selenium&#xff0c;话不多说&#xff0c;直接开始&#xff01; 1.什么是 Selenium 自动化测试 Jason Huggins 于 2004 年创建了一个 JavaScript 框架&#xff0c;旨在将其从重复的手动测试中解放出来。 最初命名为 JavaScriptTestRunn…

2001-2023年中国各省市级是否属于“开通高铁”城市匹配数据

2001-2023年中国各省市级是否属于“开通高铁”城市匹配数据 1、时间&#xff1a;2001-2023年 2、范围&#xff1a;300个地级市&#xff08;包括直辖市&#xff09; 3、来源&#xff1a;历年中国铁道出版社出版的《全国铁路旅客列车时刻表》 4、用途&#xff1a;高铁开通可作…

C++初阶:2_类与对象(中)

类与对象(中) 一.类的6个默认成员函数 如果一个类中什么成员都没有&#xff0c;简称为空类。 空类中真的什么都没有吗&#xff1f;并不是&#xff0c;任何类在什么都不写时&#xff0c;编译器会自动生成以下6个默认成员函数。 默认成员函数&#xff1a;用户没有显式实现&am…

Linux系统------------MySQL事务

目录 一、MySQL事务的概念 二、事务的ACID特点 ●原子性 ●一致性 ●隔离性 ●持久性 事务之间的相互影响有以下几种&#xff1a; ①脏读 ②不可重复读 ③幻读 ④丢失更新 三、Mysql及事务隔离级别 3.1Mysql及事务隔离级别 &#xff08;1&#xff09;read…

双点双向路由引入实验

双点双向路由引入实验 1、OSPF和ISIS路由协议的优先级分别是什么&#xff1a;OSPF&#xff1a;10&#xff0c;150&#xff0c;ISIS&#xff1a;15&#xff0c;15 2、加表原则&#xff1a;当不同的路由协议学习到相同的目的网络&#xff0c;比较优先级&#xff0c;优先级数值小…

设计模式—观察者模式与发布订阅

观察者设计模式 观察者设计模式&#xff08;Observer Design Pattern&#xff09;是一种常用的软件设计模式&#xff0c;它是一种行为型模式。该模式用于定义对象之间的一种一对多的依赖关系&#xff0c;当一个对象的状态发生改变时&#xff0c;所有依赖于它的对象都将得到通知…

OceanPen Art AI绘画系统 运营教程(二)AI视频AI创作PPT

在一个崇高的目标支持下&#xff0c;不停地工作&#xff0c;即使慢&#xff0c;也一定会获得成功。 —— 爱因斯坦 演示站点&#xff1a; ai.oceanpen.art 官方论坛&#xff1a; www.jingyuai.com 登陆后台 ppt密匙设置 导航菜单配置 Key池管理 二、前端显示 体验站点…

python食品安全信息管理系统flask-django-nodejs-php

。 食品安全信息管理系统是在安卓操作系统下的应用平台。为防止出现兼容性及稳定性问题&#xff0c;编辑器选择的是Hbuildex&#xff0c;安卓APP与后台服务端之间的数据存储主要通过MySQL。用户在使用应用时产生的数据通过 python等语言传递给数据库。通过此方式促进食品安全信…