Qt/C++学习系列之列表使用记录

Qt/C++学习系列之列表使用记录

  • 前言
  • 列表的初始化
    • 界面
    • 初始化设置
      • 名称获取
      • 简单设置
  • 单元格存储
  • 总结


前言

列表的使用主要基于QTableWidget控件,同步使用QTableWidgetItem进行单元格的设置,最后可以使用QAxObject进行单元格的数据读出将数据进行存储。接下来就开始列表的设置和保存吧!


列表的初始化

界面

列表控件可以在界面上使用QTableWidget控件。
在这里插入图片描述

初始化设置

名称获取

// 获取 ui 中的 QTableWidget
QTableWidget *tableWidget = ui->TabWid_Result;
  • 获取界面中的QTableWidget的名称,为了后续初始化的使用。

简单设置

tableWidget->setRowCount(n);
tableWidget->setColumnCount(m);
  • 设置表格的行数和列数
tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers);
  • 设置表格为不可编辑:一般是结果显示中,不需要表格输入,只是结果输出进行设置。
tableWidget->horizontalHeader()->setVisible(false);  
tableWidget->verticalHeader()->setVisible(true);    
  • 显示默认的水平表头
  • 隐藏默认的垂直表头
  • 表头的设置可具体实际的需要进行显示或隐藏。
tableWidget->setColumnWidth(col, 80); 
tableWidget->setRowHeight(row, 50);
  • 设置每列宽度的像素
  • 设置每行高度的像素。
QTableWidgetItem *emptyItem = new QTableWidgetItem("\\");
emptyItem->setBackground(Qt::lightGray); 
tableWidget->setItem(i, j, emptyItem);
  • 单元格填充使用QTableWidgetItem
  • setBackground是来设置单元格的背景色
  • 将单元格内容填充到单元格内

如何合并单元格!

tableWidget->setSpan(0, 0, 1, 12);
  • void setSpan(int row, int column, int rowSpan, int columnSpan);:这里就是初始的行列到扩展的行列。
    在这里插入图片描述
    这里要注意,如果需要存储,那么第三行一定要有数据内容,不然程序会崩!

单元格存储

QAxObject* excel = new QAxObject();
  • 定义表格。
QAxObject* workbooks = excel->querySubObject("Workbooks");
QAxObject* workbook = workbooks->querySubObject("Add()");
  • 添加新的工作薄。
QAxObject* sheets = workbook->querySubObject("Worksheets");
QAxObject* sheet = sheets->querySubObject("Item(int)", 1); // 第一个工作表
  • 获取活动的第一个工作表
int romCount = ui->TabWid_Result->rowCount();
int colCount = ui->TabWid_Result->columnCount();
  • 获取总行数
  • 获取总列数
QAxObject* biaotou=sheet->querySubObject("Cells (int,int)", 1, 1);
biaotou->dynamicCall("SetValue(const QVariant&)", QVariant("xx"));
biaotou->setProperty("RowHeight", 30); // 设置宽度为20
biaotou->setProperty("Size", 20); // 设置宽度为20
  • 这里是获取单元格对象。
  • dynamicCall设置单元格的内容。
  • setProperty是根据不同的内容进行数据设置。

如何获取实际列表值进行excel数据写入呢?

QString str1=ui->TabWid_Result->item(i,j)->text();
QAxObject* danyuange3=sheet->querySubObject("Cells (int,int)", i, j);
danyuange3->dynamicCall("SetValue(const QVariant&)", QVariant(str1));
  • 获取表格内容,形成QString
  • querySubObject:获取 Excel 单元格对象
  • 通过dynamicCall将内容写入QAxObject中。
    在这里插入图片描述

总结

本文主要简单介绍了表格的简单使用,并做了存储设置。

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

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

相关文章

防火墙通常可以分为哪些类型?

防火墙是目前保护网络安全的重要设备,能够通过监控、过滤和控制进出网络的数据流量,来保护内部网络不会受到未经授权的IP地址进行访问和恶意的网络威胁,设置防火墙能够帮助企业确保网络的安全性,同时防火墙也会根据不同的功能来划…

基于GeoTools的道路相交多个点容差冗余计算实战

目录 前言 一、关于道路相交 1、相交四个点 2、点更多的情况 二、基于距离的相交点去重 1、冗余距离计算 2、调用过程 3、去重后的结果 三、总结 前言 在地理信息系统(GIS)领域,道路网络数据的处理与分析一直是关键课题。随着城市化进…

android:foregroundServiceType详解

在 Android 中,foregroundServiceType 是用于声明前台服务类型的属性,主要从 Android 10(API 29)开始引入,并在 Android 11(API 30)及更高版本 中进一步细化。以下是所有可用的 foregroundServi…

React+Taro 微信小程序做一个页面,背景图需贴手机屏幕最上边覆盖展示

话不多说 直接上图 第一步 import { getSystemInfoSync } from tarojs/taro;第二步 render() {const cardBanner getImageUrlByGlobal(member-merge-bg.png);const { safeArea, statusBarHeight } getSystemInfoSync();const NAV_BAR_HEIGHT 44;const navBarHeight NAV…

从零开始的云计算生活——番外,实战脚本。

目录 题目一:系统信息收集脚本 题目二:用户管理配置脚本 题目三:磁盘空间管理脚本 题目四:网络配置检查脚本 题目五:系统日志分析脚本 题目一:系统信息收集脚本 编写一个脚本名为 collect_system_info…

MySQL基础知识(DDL、DML)

什么是数据库? 数据库:英文为 DataBase,简称DB,它是存储和管理数据的仓库。 注释: 单行注释:-- 注释内容 或 # 注释内容(MySQL特有)多行注释: /* 注释内容 */ 分类 SQL语句根据其功能被分为…

用volatile修饰数组代表什么意思,Java

文章目录 volatile 修饰数组引用的含义volatile 对数组元素无效总结 如何让数组元素也具有 volatile 特性? 当用 volatile 关键字修饰一个数组时,它只保证数组引用的可见性和部分原子性,而不保证数组元素的可见性和原子性。 换句话说&#x…

Ubuntu 24.04 LTS 长期支持版发布:对服务器用户意味着什么?新特性、升级建议与性能影响初探

更多云服务器知识,尽在hostol.com 在服务器运维的广阔世界里,每一次主流操作系统长期支持(LTS)版本的发布,都无异于一次重要的“时代交替”。它不仅带来了一系列令人瞩目的技术革新,更重要的是&#xff0c…

题目 3241: 蓝桥杯2024年第十五届省赛真题-挖矿

题目 3241: 蓝桥杯2024年第十五届省赛真题-挖矿 时间限制: 3s 内存限制: 512MB 提交: 1267 解决: 224 题目描述 小蓝正在数轴上挖矿,数轴上一共有 n 个矿洞,第 i 个矿洞的坐标为 ai 。小蓝从 0 出发,每次可以向左或向右移动 1 的距离&#xf…

vue3+ts+vite创建的后台管理系统笔记

Vue3+ Vite + Element-Plus + TypeScript 从0到1搭建企业级后台管理系统(前后端开源):参考有来科技学习搭建项目 创建项目bug汇总,知识点src 路径别名配置和tsconfig.json文件报错【这个不配置好,会引起其他页面引用时报错:见--整合 Pinia】:整合 Pinia 【参考-- src 路径…

指针01 day13

十三:指针变量 一:数据类型 ​ 指针类型---------对应处理的数据是指针 (地址)这种数据 ​ 整型类型---------对应处理的数据是整数这种类型 二:定义指针类型的变量 ​ 语法: 基类型(1) *(…

基于深度学习的智能文本生成:从模型到应用

前言 随着人工智能技术的飞速发展,自然语言处理(NLP)领域取得了显著的进展。其中,智能文本生成技术尤其引人注目。从聊天机器人到内容创作,智能文本生成不仅能够提高效率,还能创造出令人惊叹的内容。本文将…

Oracle业务用户的存储过程个数及行数统计

Oracle业务用户的存储过程个数及行数统计 统计所有业务用户存储过程的个数独立定义的存储过程定义在包里的存储过程统计所有业务用户存储过程的总行数独立定义的存储过程定义在包里的存储过程通过DBA_SOURCE统计类型个数和代码行数📖 对存储过程进行统计主要用到以下三个系统…

多线程安全:核心解决方案全解析

在多线程环境下保证共享变量的线程安全,需解决原子性、可见性、有序性三大问题。以下是核心解决方案及适用场景: 一、同步锁机制(互斥访问) synchronized 关键字 原理:通过 JVM 监视器锁(Monitor)确保同一时间仅一个线程访问临界区。示例:public class Counter {privat…

2025-06-01-Hive 技术及应用介绍

Hive 技术及应用介绍 参考资料 Hive 技术原理Hive 架构及应用介绍Hive - 小海哥哥 de - 博客园https://cwiki.apache.org/confluence/display/Hive/Home(官方文档) Apache Hive 是基于 Hadoop 构建的数据仓库工具,它为海量结构化数据提供类 SQL 的查询能力&#xf…

Python爬虫(52)Scrapy-Redis分布式爬虫架构实战:IP代理池深度集成与跨地域数据采集

目录 一、引言:当爬虫遭遇"地域封锁"二、背景解析:分布式爬虫的两大技术挑战1. 传统Scrapy架构的局限性2. 地域限制的三种典型表现 三、架构设计:Scrapy-Redis 代理池的协同机制1. 分布式架构拓扑图2. 核心组件协同流程 四、技术实…

HashMap真面目

背景 今天数据采集项目碰到一个性能问题,3000多个采集点,每一个采集点每秒送一个数据,接收到数据之后首先需要内存中做缓存,之后有一系列的业务分析处理,所以,对系统性能要求比较高。 最近几天发现服务器…

STM32CubeMX-H7-19-ESP8266通信(中)--单片机控制ESP8266实现TCP地址通信

前言 上篇文章我们已经能够使用串口助手实现esp8266的几种通信,接下来我们使用单片机控制实现。这篇文章会附带教程,增加.c和,.h,把串口和定时器放到对应的编号,然后调用初始化就可以使用了。 先讲解,然后末尾再放源码…

欧盟RED网络安全标准EN 18031-2的要求

欧盟RED网络安全标准EN 18031-2的要求 欧盟RED网络安全标准EN 18031-2的要求 ​ 适用产品范围: 能够处理个人隐私数据的可联网无线电设备。 不具备联网能力的三类无线电设备:玩具、儿童护理类设备、可穿戴类设备。 主要测试与评估内容: EN…

一起了解--CAST函数

CAST函数在SQL中用途广泛,不仅可以转换为数值类型,还可以在多种场景下用于数据类型转换。以下是一些常见的用途和示例: 类型转换 使用CAST函数可以在查询数据库时根据需要调整数据格式或类型 CAST(expression AS target_type) expression …