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

Qt 学习第十一天:QTableWidget 的使用

一、创建QTableWidget对象,设置大小,在窗口的位置

//创建tablewidget
    QTableWidget *table = new QTableWidget(this);
    table->resize(550, 300);
    table->move(100, 100); //移动

二、设置表头

//设置表头
    QStringList headerList; //定义headerList变量
    headerList << "姓名" << "班级" << "学号"; //添加内容
    QFont font; //设置字号
    font.setPointSize(17);
    table->setFont(font);
    table->setColumnCount(headerList.size()); //设置列数=表头列数
    table->setHorizontalHeaderLabels(headerList); //添加headerList到表头
    //ResizeToContents, 列的宽度会根据列标题文字的宽度设置
    table->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents); //需要包含#include <QHeaderView>
    table->setRowCount(3); //设置行数,不设置显示不出文本

要注意设置行数和列数,不然不会显示内容或文本

三、往表格添加内容

//往表格添加内容
    QStringList nameList, classList, studentIDList;
    nameList << "陈*林" << "张三" << "李四";
    classList << "计算机科学与技术22(3)班" << "人工智能23(1)班" << "软件工程24(4)班";
    studentIDList << "2130602105" << "2340602143" << "2460602113";
    for(int i=0; i<headerList.size(); i++)
    {
        QTableWidgetItem *nameItem = new QTableWidgetItem(nameList[i]); //创建列表项
        nameItem->setTextAlignment(Qt::AlignCenter);
        table->setItem(i, 0, nameItem);
        table->setRowHeight(i, 10); // 设置行大小

        QTableWidgetItem *classItem = new QTableWidgetItem(classList[i]); //创建列表项
        classItem->setTextAlignment(Qt::AlignCenter);
        table->setItem(i, 1, classItem);

        QTableWidgetItem *studentIDItem = new QTableWidgetItem(studentIDList[i]); //创建列表项
        studentIDItem->setTextAlignment(Qt::AlignCenter);
        table->setItem(i, 2, studentIDItem);
    }

【完整代码】

#include "widget.h"
#include "ui_widget.h"
#include <QTableWidget>
#include <QHeaderView>
#include <QDebug>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    //创建tablewidget
    QTableWidget *table = new QTableWidget(this);
    table->resize(550, 300);
    table->move(100, 100); //移动
    //设置表头
    QStringList headerList; //定义headerList变量
    headerList << "姓名" << "班级" << "学号"; //添加内容
    QFont font; //设置字号
    font.setPointSize(17);
    table->setFont(font);
    table->setColumnCount(headerList.size()); //设置列数=表头列数
    table->setHorizontalHeaderLabels(headerList); //添加headerList到表头
    //ResizeToContents, 列的宽度会根据列标题文字的宽度设置
    table->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents); //需要包含#include <QHeaderView>
    table->setRowCount(3); //设置行数,不设置显示不出文本
    //往表格添加内容
    QStringList nameList, classList, studentIDList;
    nameList << "王五" << "张三" << "李四";
    classList << "计算机科学与技术22(3)班" << "人工智能23(1)班" << "软件工程24(4)班";
    studentIDList << "2130602105" << "2340602143" << "2460602113";
    for(int i=0; i<headerList.size(); i++)
    {
        QTableWidgetItem *nameItem = new QTableWidgetItem(nameList[i]); //创建列表项
        nameItem->setTextAlignment(Qt::AlignCenter);
        table->setItem(i, 0, nameItem);
        table->setRowHeight(i, 10); // 设置行大小

        QTableWidgetItem *classItem = new QTableWidgetItem(classList[i]); //创建列表项
        classItem->setTextAlignment(Qt::AlignCenter);
        table->setItem(i, 1, classItem);

        QTableWidgetItem *studentIDItem = new QTableWidgetItem(studentIDList[i]); //创建列表项
        studentIDItem->setTextAlignment(Qt::AlignCenter);
        table->setItem(i, 2, studentIDItem);
    }
}

Widget::~Widget()
{
    delete ui;
}

【运行结果】

补充知识点:


http://www.kler.cn/news/325583.html

相关文章:

  • 启动hadoop集群出现there is no HDFS_NAMENODE_USER defined.Aborting operation
  • 基于HTML、CSS和JavaScript的滚动数字显示效果,类似于老式计数器或电子表上的数字滚动效果
  • JAVA并发编程高级——JDK 新增的原子操作类 LongAdder
  • 渗透测试实战—教育攻防演练信息收集
  • Bugku 渗透测试1
  • 03. 前端面试题之ts : typescript 的数据类型有哪些?
  • LeetCode 热题 100 回顾2
  • 3种方法解决Docker容器中配置运行环境问题
  • 使用Python实现图形学的法线映射算法
  • 磁盘管理器
  • Qt网络编程——QUdpSocket
  • golang学习笔记24-文件操作
  • 实用好软-----电脑端 从视频中导出音频的方便工具
  • 微信小程序-数据模型与动态赋值
  • 女性向游戏的新战场:AI陪伴系统
  • CSS中的字体样式、文本样式、列表样式以及背景和渐变
  • VS Code、Git与自动化脚本的效能之旅
  • MATLAB GUI设计原则与实践
  • GPT带我学-设计模式18-访问者模式
  • Springboot项目-实战2-实现
  • 计数排序(counting sort)
  • 计算机毕业设计 饮食营养管理信息系统的设计与实现 Java实战项目 附源码+文档+视频讲解
  • 问题:vscode 打印中文时终端输出乱码
  • 快手:数据库升级实践,实现PB级数据的高效管理|OceanBase案例
  • (22)activeMQ部署
  • Linux基础命令mkfs详解
  • C语言基础之数组
  • 低空经济时代:无人机飞行安全要点详解
  • 汽车线束之故障诊断方案-TDR测试
  • Leetcode 3302. Find the Lexicographically Smallest Valid Sequence