Qt模型/查看SQL推荐

时间:2015-09-02 18:04:40

标签: sql qt model-view

我刚刚开始使用Qt的模型/视图框架,我试图找到一个看起来很简单的问题的最佳解决方案。

我有一个Employee(Id, LastName, FirstName, Salary),我想显示同一个表的两个不同视图: - 第一个视图:只有QListView,包括名字和姓氏的串联。此视图不应该是可编辑的,但一次只能选择一个员工。 - 第二个视图:使用3x QLineEdit作为名称,名字和工资。这三个字段用于更改数据库的内容。

我设法使用[Name, FirstName]QListView内正确显示QSqlQueryModel

QSqlQueryModel* modelSQL = new QSqlQueryModel(this);
modelQuery->setQuery("SELECT CONCAT(LastName, ', ', FirstName) AS FullName, Id FROM Employee ORDER BY FullName ASC;");
empListView = new QListView;
empListView->setModel(modelSQL);

我设法使用QSqlTableModelQDataWidgetMapper来显示QLineEdit中的所有三个字段。

QSqlTableModel *model = new QSqlTableModel(this, this->db);
model->setTable("Employee");
model->select();

mapper = new QDataWidgetMapper(this);
mapper->setModel(modelSQL);
mapper->addMapping(this->lastNameEdit, 2);
mapper->addMapping(this->firstNameEdit, 3);
mapper->addMapping(this->salaryEdit, 4);

我的问题是,从modelQuery更新模型的最佳策略是什么。我的意思是,当我点击QListView并选择,例如,第三名员工;如何相应地同步其他三个字段?

非常感谢!

0 个答案:

没有答案