上篇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;
}