目录
头文件
实战
重新配置ui界面
添加头文件
在构造函数中添加初始化
显示方法
该实例是在sqlite项目上添加qt学习:QTSQL+连接sqlite数据库+增删改查-CSDN博客
头文件
#include <QTableWidgetItem>
实战
重新配置ui界面
用法介绍,可以双击进入到行和列的控制浮窗进行添加行和列,或者通过代码方式
添加头文件
在构造函数中添加初始化
//初始化表格控件//1、设置表头的文本QStringList list;//将每列的标题写入listlist<<"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++;}