Qt MV架构 数据-窗口映射器

54 篇文章 0 订阅
9 篇文章 0 订阅

一、基本概念

数据-窗口映射器QDataWidgetMapper类在数据模型的一个区域和一个窗口部件间提供了一个映射,这样就可以实现在一个窗口部件上显示和编辑一个模型中的一行数据。

二、代码示例

#include <QDataWidgetMapper>
#include <QStandardItemModel>

//然后在构造函数中添加如下代码:
{
	QStandardItemModel *model = new QStandardItemModel(3, 2, this);
	model->setItem(0, 0, new QStandardItem("xiaoming"));
	model->setItem(0, 1, new QStandardItem("90"));
	model->setItem(1, 0, new QtandardItem("xiaogang"));
	model->setItem(1, 1, new QStandardItem("75"));
	model->setItem(2, 0, new QStandardItem("xiaohong"));
	model->setItem(2, 1, new QStandardItem("80"));
	
	m_mapper = new QDataWidgetMapper(this);
	
	//设置模型
	m_mapper->setModel(model);

	//设置窗口部件和模型中的列的映射
	m_mapper->addMapping(ui->lineEdit, 0);
	m_mapper->addMapping(ui->lineEdit_2, 1);

	//显示模型中的第一行
	m_mapper->toFirst();
}

上面创建了一个QDataWidgetMapper实例,然后为其设置了关联的模型,并设置了窗口部件和模型中对应列的映射,最后使用toFirst()函数来显示模型中第一行的数据。

下来再增加两个按钮,“上一条”和“下一条”,它们的槽函数如下:

void MainWindow::on_pushbutton_clicked()
{
	m_mapper->toPrevious();
}
void MaiWindow::on_pushbutton2_clicked()
{
	m_mapper->toNext();
}

分别使用了toPrevious()toNext()函数来显示模型中上一行和下一行的数据。

还有一个toLast()函数可以显示模型中嘴鸥一行的数据。

关于QDataWidgetMapper类的使用,也可以参考Simple Widget Mapper和Combo Widget Mapper示例程序,它们在Item Views分类中。


参考资料:Qt Creator快速入门 (霍亚飞 著)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

barbyQAQ

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

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

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

打赏作者

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

抵扣说明:

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

余额充值