【发布时间】:2011-05-13 07:46:52
【问题描述】:
我试图在QTableView 的某个单元格中获取文本。例如:
QString codestring = "*" + ui->tblInventory->indexAt(QPoint(0,2)).data().toString() + "*";
这应该会在我的QTableView 中的第 0 列第 2 行的单元格中获取文本。问题是,这不是它在做什么!无论我在indexAt() 中传递给QPoint() 的参数是什么,我都会在单元格0,0 处获得文本。我不知道这是为什么……有什么帮助吗?谢谢!
[编辑]
我也试过这个:
QString codestring = "*" + ui->tblInventory->model()->data(ui->tblInventory->indexAt(QPoint(0,2))).toString() + "*";
[编辑 2] 试图找出发生了什么,我输入了这行代码:
qDebug()<< ui->tblInventory->indexAt(QPoint(2,2)).row() << " and " << ui->tblInventory->indexAt(QPoint(2,2)).column();
它应该在单元格 2,2 处获得 QModelIndex 并输出其行和列,当然应该是 2 和 2。但是,我得到了 0 和 0!所以看起来这可能是QTableView::indexAt() 的问题,无论是我的使用还是某种错误。有人能解释一下吗?
【问题讨论】:
-
indexAt(QPoint(0,2) 将返回小部件位置 X=0 Y=2 处的单元格的 QModelIndex,而不是 Row/Col 0,2
标签: c++ qt qtableview