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控件初始化函数接口
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->horizontalHeader()->setStretchLastSection(true);
table->setShowGrid(true);
table->setGridStyle(Qt::SolidLine);
}
SQL 映射到QTableView 控件上
附上SQL映射Qtableview函数接口
void Widget::sqlModeInit(QSqlDatabase db, QTableView *table)
{
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();
table->setModel(sqlTableModel);
}
插入数据
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()<<"更新数据库失败";
}
附上代码执行结果
删除一行数据
void Widget::delSqlData()
{
if(ui->tableView->currentIndex().row()!=-1){
sqlTableModel->removeRow(ui->tableView->currentIndex().row());
if(!sqlTableModel->submitAll()){
qDebug()<<"更新数据库失败";
}
}
}
数据库的创建上一篇有写到。。。。。。。
Original: https://blog.csdn.net/qq_45147279/article/details/119946454
Author: Talent、me
Title: Qt QTableView之QSqlTableModel数据库显示及插入删除操作
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/816075/
转载文章受原作者版权保护。转载请注明原作者出处!