Qt QTableView之QSqlTableModel数据库显示及插入删除操作
QTableView的使用初始化QTableView控件//设置tableview行表头 文字居中horizontalHeader()->setDefaultAlignment(Qt::AlignCenter);//设置tableview列表头 文字居中verticalHeader()->setDefaultAlignment(Qt::AlignCenter);//设置列的默认大小ve
·
QTableView的使用
- 初始化QTableView控件
//设置tableview行表头 文字居中
horizontalHeader()->setDefaultAlignment(Qt::AlignCenter);
//设置tableview列表头 文字居中
verticalHeader()->setDefaultAlignment(Qt::AlignCenter);
//设置列的默认大小
verticalHeader()->setDefaultSectionSize(50);
//设置列表头是否显示
verticalHeader()->setVisible(false);//true->显示 , false->不显示
//设置最后一行自动调整
horizontalHeader()->setStretchLastSection(true);
//自动调整大小
//resizeColumnToContents(int);//第几列
//setSectionResizeMode(QHeaderView::Stretch);等宽
//设置是否有网格线
setShowGrid(true);
setGridStyle(Qt::SolidLine);//设置网格线类型Qt::DashLine ->虚线
horizontalHeader()->setHighlightSections(false); //解决表头塌陷问题:点击表格时不对表格行光亮 - 使用tableview控件的设置
//单一和多选选择
setSelectionMode(QAbstractItemView::SingleSelection);
setSelectionMode(QAbstractItemView::ExtendedSelection);
//选择整行
table->setSelectionBehavior(QAbstractItemView::SelectRows);
//去掉水平滚动条
table->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
//内容不可编辑
table->setEditTriggers(QAbstractItemView::NoEditTriggers);
附上QTableView控件初始化函数接口
/*************************************************
Function: tableviewInit// 函数名称
Description: QTableview 初始化函数// 函数功能、性能等的描述
Input: QTableView *table ->控件名// 输入参数说明,包括每个参数的作用、取值说明及参数间关系。
Return: 无// 函数返回值的说明
*************************************************/
void Widget::tableviewInit(QTableView *table)
{
table->horizontalHeader()->setDefaultAlignment(Qt::AlignCenter);
table->verticalHeader()->setDefaultAlignment(Qt::AlignCenter);
table->verticalHeader()->setDefaultSectionSize(50);
table->verticalHeader()->setVisible(false);
table->setSelectionMode(QAbstractItemView::SingleSelection);
table->setSelectionBehavior(QAbstractItemView::SelectRows);
table->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
table->setEditTriggers(QAbstractItemView::NoEditTriggers);
//table->resizeColumnToContents(2);
//table->resizeColumnToContents(3);
//table->resizeColumnToContents(4);
//table->setColumnWidth(6,152);
table->horizontalHeader()->setStretchLastSection(true);
//table->verticalHeader()->setMinimumWidth(30);
table->setShowGrid(true);
table->setGridStyle(Qt::SolidLine);
}
SQL 映射到QTableView 控件上
附上SQL映射Qtableview函数接口
/*************************************************
Function: sqlModeInit// 函数名称
Description: sql 映射到QTableview 函数// 函数功能、性能等的描述
Input:QSqlDatabase db ->数据库名
QTableView *table ->映射到QTableView控件名// 输入参数说明,包括每个参数的作用、取值说明及参数间关系。
Return: 无// 函数返回值的说明
*************************************************/
void Widget::sqlModeInit(QSqlDatabase db, QTableView *table)
{
//创建一个QSqlTableModel模型
sqlTableModel = new QSqlTableModel(this,db);
//设置模型表名
sqlTableModel->setTable("usertable");
sqlTableModel->setEditStrategy(QSqlTableModel::OnFieldChange);
//设置表头名称
sqlTableModel->setHeaderData(0, Qt::Orientation::Horizontal, tr("序号"));
sqlTableModel->setHeaderData(1,Qt::Orientation::Horizontal, tr("用户ID"));
sqlTableModel->setHeaderData(2, Qt::Orientation::Horizontal, tr("身份"));
sqlTableModel->setHeaderData(3,Qt::Orientation::Horizontal, tr("用户名"));
sqlTableModel->setHeaderData(4, Qt::Orientation::Horizontal, tr("密码"));
sqlTableModel->select();
//显示到Qtableview控件上
table->setModel(sqlTableModel);
}
插入数据
/*************************************************
Function: insertSqlData()// 函数名称
Description: 插入数据// 函数功能、性能等的描述
Input:// 输入参数说明,包括每个参数的作用、取值说明及参数间关系。
Return: 无// 函数返回值的说明
*************************************************/
void Widget::insertSqlData()
{
int row = sqlTableModel->rowCount();
sqlTableModel->insertRow(sqlTableModel->rowCount());
sqlTableModel->setData(sqlTableModel->index(row,1),"2");
sqlTableModel->setData(sqlTableModel->index(row,2), "user");
sqlTableModel->setData(sqlTableModel->index(row,3), "xiaoming");
sqlTableModel->setData(sqlTableModel->index(row,4), "123456");
if(!sqlTableModel->submitAll()){
qDebug()<<"更新数据库失败";
}
附上代码执行结果
删除一行数据
/*************************************************
Function: delSqlData()// 函数名称
Description: 插入数据// 函数功能、性能等的描述
Input:// 输入参数说明,包括每个参数的作用、取值说明及参数间关系。
Return: 无// 函数返回值的说明
*************************************************/
void Widget::delSqlData()
{
//判断是否选中tableview的一行数据
if(ui->tableView->currentIndex().row()!=-1){
//删除选中的行
sqlTableModel->removeRow(ui->tableView->currentIndex().row());
if(!sqlTableModel->submitAll()){
qDebug()<<"更新数据库失败";
}
}
}
数据库的创建上一篇有写到。。。。。。。
更多推荐
已为社区贡献1条内容
所有评论(0)