gpt4 book ai didi

c++ - 拖拽后获取QTableView的实际行号

转载 作者:行者123 更新时间:2023-11-28 06:24:24 33 4
gpt4 key购买 nike

首先tableview的数据是

  1. 苹果
  2. 馅饼
  3. 香蕉

在tableview上拖放(只拖放自身)item后,tableview的数据如下所示

  1. 香蕉
  2. 馅饼
  3. 苹果

但是当我想一个一个地迭代模型的item时

代码

for(int i = 0; i != rowCount(); ++i){
if(item(row, Fruit)){
return item(row, Fruit)->data(Qt::DisplayRole).value<QString>();
}
}

它将数据打印为

  1. 苹果
  2. 馅饼
  3. 香蕉

预期结果

  1. 香蕉
  2. 馅饼
  3. 苹果

拖放后如何获得“实际”数字?

我能想到的最简单的解决方案是再创建一列来存储模型的行号,然后覆盖 dropEvent,在用户放下行时更新行号。有更简单的方法吗?

编辑:

Example

如示例所示,我想要的代码结果是“pie, apple, banana”。但实际结果是“banana, pie, apple”

最佳答案

模型总是对逻辑索引进行操作。您需要使用 verticalHeader() 的 visualIndex 进行迭代。

for(int i = 0; i < rowCount(); ++i)
{
// i is the logicalIndex
int row = your_table->verticalHeader()->visualIndex(i);

if(item(row, Fruit))
return item(row, Fruit)->data(Qt::DisplayRole).value<QString>();
}

关于c++ - 拖拽后获取QTableView的实际行号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28765501/

33 4 0
文章推荐: javascript - 当我多次单击提交按钮时(当加载发帖时),该帖子会被多次发帖
文章推荐: html - 调整侧边栏旁边
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com