【问题标题】:QT SqlQueryModel, TreeView and SortFilterProxyModel how to get selected rowQT SqlQueryModel、TreeView 和 SortFilterProxyModel 如何获取选定的行
【发布时间】:2013-04-29 04:52:42
【问题描述】:

我有一个由 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

【问题讨论】:

    标签: qt qtreeview qsortfilterproxymodel


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-13
      • 1970-01-01
      • 1970-01-01
      • 2021-10-01
      • 2015-08-17
      相关资源
      最近更新 更多