目录
头文件
实战
重新配置ui界面
添加头文件
在构造函数中添加初始化
显示方法
该实例是在sqlite项目上添加qt学习:QTSQL+连接sqlite数据库+增删改查-CSDN博客
头文件
#include <QTableWidgetItem>
实战
重新配置ui界面
用法介绍,可以双击进入到行和列的控制浮窗进行添加行和列,或者通过代码方式
添加头文件
在构造函数中添加初始化
//初始化表格控件
//1、设置表头的文本
QStringList list;
//将每列的标题写入list
list<<"ID"<<"姓名"<<"地址"<<"工资"<<"更多";
//2、设置表格控件的列数
ui->tableWidget->setColumnCount(5);
//设置颜色交替
ui->tableWidget->setAlternatingRowColors(true);
//设置列的宽度
ui->tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
//3、设置水平表头
//ui->tableWidget->columnCount()得到列数
for(int i=0; i<ui->tableWidget->columnCount(); i++)
{
//实例化一个单元格类的对象
QTableWidgetItem *item = new QTableWidgetItem;
item->setText(list.at(i));
//设置字体
QFont font = item->font();
font.setBold(true);//加粗
font.setPixelSize(32);
item->setFont(font);
//将单元格设置为水平表头,第i列,
//简单来说就是将item单元格设置到第0行的第i列格子上
ui->tableWidget->setHorizontalHeaderItem(i,item);
}
显示方法
//查询语句
QString sql = QString("select * from staff order by name desc;");
//创建一个可以对db执行语句的对象
QSqlQuery query(db);
//执行sql语句
bool ret = query.exec(sql);
if(ret == false)
{
qDebug()<<"select error "<<query.lastError().text();
}
//从第一行开始显示
int row = 0;
//查询的结果
while(query.next())
{
//获取到查询到的数据
int id = query.value(0).toInt();
QString name = query.value("name").toString();
QString address = query.value("address").toString();
double salary = query.value("salary").toDouble();
//组合成字符串,可以打印出来
QString text = QString("id:%1 name:%2 address:%3 salary:%4").arg(id).arg(name).arg(address).arg(salary);
//放到表格控件上显示
//在插入一行记录之前,表格控件先 新增一行,告诉这个表格控件 我要插入一行数据,你要把相关的操作 初始化好
qDebug()<<"row:"<<ui->tableWidget->rowCount();//打印出当前表格有多少行
ui->tableWidget->setRowCount(ui->tableWidget->rowCount() + 1);
//新建一个单元格指针
QTableWidgetItem *item;
//ID单元格
//配置单元格空间,内容,布局
item = new QTableWidgetItem;
item->setText(QString::number(id));
item->setTextAlignment(Qt::AlignCenter);
//void QTableWidget::setItem(int row, int column, QTableWidgetItem *item)
//第一个参数表示 将当前这个单元格 插到 第row行
//第二个参数表示 将当前这个单元格 插到 第 column列
ui->tableWidget->setItem(row,0,item);
//name 单元格
item = new QTableWidgetItem;
item->setText(name);
item->setTextAlignment(Qt::AlignCenter);
ui->tableWidget->setItem(row,1,item);
//address 单元格
item = new QTableWidgetItem;
item->setText(address);
item->setTextAlignment(Qt::AlignCenter);
ui->tableWidget->setItem(row,2,item);
//salary 单元格
item = new QTableWidgetItem;
item->setText(QString::number(salary));
item->setTextAlignment(Qt::AlignCenter);
ui->tableWidget->setItem(row,3,item);
//更多按钮配置
QPushButton *btn = new QPushButton;
btn->setText("...");
ui->tableWidget->setCellWidget(row, 4, btn);
row++;
}