QT从入门到实战x篇_19_QTableWidget控件(实现类似EXCEL的数据表格;具体的使用方法;QStringList 和QList的使用;int转QString方法)

上篇QT从入门到实战x篇_18_QTreeWidget控件(实现类似于树状结构的数据效果;具体使用方法;QStringList的使用方法)介绍了QTreeWidget控件的使用方法,本篇将会介绍Qt中QTableWidget控件的使用方法。

本篇将会利用QTableWidget控件实现类似于以下形式的数据表格显示界面。
在这里插入图片描述

1. 创建名为“07_TableWidget”的widget程序


在 UI中拖入 “TableWidget”控件,通过点击上方的 “垂直布局”可以实现控件占满整个 widget

在这里插入图片描述

2. 设置列数和水平表头

    //设置列数
    ui->tableWidget->setColumnCount(3);
    //设置水平表头
    ui->tableWidget->setHorizontalHeaderLabels(QStringList()<<QString::fromLocal8Bit("姓名")<<QString::fromLocal8Bit("性别")<<QString::fromLocal8Bit("年龄"));

运行结果:
在这里插入图片描述

3. 设置行数

    //设置行数
    ui->tableWidget->setRowCount(5);

在这里插入图片描述

4. 设置正文中单个行列值

//设置正文
    ui->tableWidget->setItem(0,0,new QTableWidgetItem(QString::fromLocal8Bit("亚瑟")));

运行结果:
在这里插入图片描述

5. 填满整个列表


注意: 下面的程序中使用了 QStringList nameList;QList<QString> sexList;,其使用方法基本一致, QList对象可以使用 [i].at[i]的方式访问数据,当存在越界时 [i]程序就会挂掉, .at[i]的方式就会提示异常。

    QStringList nameList;
    nameList<<"yase"<<"zhangfei"<<"zhaoyun"<<"liubei"<<"guanyu";

    QList<QString> sexList;
    sexList<<"man"<<"man"<<"man"<<"man"<<"man";

    //填充行列内信息
    for(int i=0;i<5;i++)
    {
        int col=0;
        ui->tableWidget->setItem(i,col++,new QTableWidgetItem(nameList[i]));
        ui->tableWidget->setItem(i,col++,new QTableWidgetItem(sexList.at(i)));
        //int 转 QString
        ui->tableWidget->setItem(i,col++,new QTableWidgetItem(QString::number(i+18)));
    }

运行结果:
在这里插入图片描述

6. 学习视频地址:QT从入门到实战x篇_19_QTableWidget控件

整体代码:

#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);

    //设置列数
    ui->tableWidget->setColumnCount(3);
    //设置水平表头
    ui->tableWidget->setHorizontalHeaderLabels(QStringList()<<QString::fromLocal8Bit("姓名")<<QString::fromLocal8Bit("性别")<<QString::fromLocal8Bit("年龄"));

    //设置行数
    ui->tableWidget->setRowCount(5);

    //设置正文
//    ui->tableWidget->setItem(0,0,new QTableWidgetItem(QString::fromLocal8Bit("亚瑟")));
    QStringList nameList;
    nameList<<"yase"<<"zhangfei"<<"zhaoyun"<<"liubei"<<"guanyu";

    QList<QString> sexList;
    sexList<<"man"<<"man"<<"man"<<"man"<<"man";

    //填充行列内信息
    for(int i=0;i<5;i++)
    {
        int col=0;
        ui->tableWidget->setItem(i,col++,new QTableWidgetItem(nameList[i]));
        ui->tableWidget->setItem(i,col++,new QTableWidgetItem(sexList.at(i)));
        //int 转 QString
        ui->tableWidget->setItem(i,col++,new QTableWidgetItem(QString::number(i+18)));
    }

}

Widget::~Widget()
{
    delete ui;
}
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

十月旧城

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值