Qt6常用类QStandardItemModel的使用

QStandardItemModel用于实现基于项的数据模型,QAbstractItemModel的子类,用于提供数据给Qt的视图类(QTreeView、QListView、QTableView等)进行显示和编辑,可以根据需要设置和获取项的文本、图标、状态和其他属性。它还提供了一些方便的方法来操作和查询数据,如插入、删除、排序、过滤等,通常配合QStandardItem和QTableView一起使用,实现动态可交互的表格,它还能配合关系型数据库一起使用,将数据库中的数据显示在窗口中。

QStandaraItemModel配合数据库一起使用,这样得到的一个model里面就装有了,对应数据库中的数据,通过QTableView的setModel函数就可以实现在QTableView上面展示数据库中的内容,而且通过使用QSS还能更改表的单元格的样式,比如填充的颜色,鼠标选中时候的颜色,设置文本居中等等,搭配槽函数和信号一起使用,可以完美做到一个动态数据处理表格,并且同步该表格对应数据库表的变化。

QString sql= "select*from booksystem.user";
QSqlQuery q;
if(!q.exec(sql)){ throw QSqlError("用户查询失败:", q.lastError().text()); }
int row = 0;
while(q.next())
{
	QString id = q.value(0).toString();
	QString name = q.value(1).toString();
	QString account = q.value(2).toString();
	QString password = q.value(3).toString();
	QString identity = q.value(4).toString();
	QStandardItem* item1 = new QStandardItem(id);
	QStandardItem* item2 = new QStandardItem(name);
	model.setItem(row, 0, item1);
	model.setItem(row, 1, item2);
	row++;
}
q.clear();
//配合数据库使用初始化表格数据

修改表的格式

for(int row=0;row<model->rowCount();row++)
{
for(int column=0;clumn<model->columnCount();column++)
{
QModelIndex index=model->index(row,column);
model->setData(index,Qt::AlignCenter,Qt::TextAlignmentRole);//表格元素文本居中
QStandardItem*item=model->itemFromIndex(index);
if(item&&!item->text().isEmpty())
{
item->setEditable(false);
//设置表格元素只读
item->setBackground(QColor(114,160,205));
//设置有数据的表格元素的填充颜色
}
}
}

最后搭配QTableView的setModel函数就可以实现一个好看的动态表格了

QTableView *t=new QTableView();
t->setModel(model);

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

咩咩大主教

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值