0

我有一个由 SqlQueryModel 提供的 SortFilterProxyModel 提供的 TreeView。

现在我想添加双击事件,以便编辑对话框加载来自所选行的数据并且可以进行编辑。

但我得到的只是要加载的“随机”行,就像 TreeView 当前索引错误一样。我的猜测是 SortFilterProxyModel 搞砸了,但我不知道如何获得正确的索引。

这就是我设置模型的方式:

proxyModel = new SortFilterProxyModel();

treeView = new QTreeView();
treeView->setModel(proxyModel);

sqlModel = new QSqlQueryModel(this);
proxyModel->setSourceModel(sqlModel);

这是我得到错误行的代码:

QSqlRecord product = sqlModel->record(treeView->currentIndex().row());

我是QT的新手,但我在网上到处找,找不到答案,所以我希望这里有人能帮助我!:D

4

1 回答 1

1

我会在另一个网站上留下他们给我的答案:

您需要获取视图的 currentIndex(),它是代理模型的排序/过滤端的模型索引,并使用代理模型的 QSortFilterProxyModel::mapToSource() 函数获取源模型的相应模型索引。然后,您可以使用该索引(如果有效)直接处理 SQL 模型。

于 2013-05-03T02:31:56.567 回答