Jos*_*eph 16 c++ qt qtableview
我正试图将文本放在某个单元格中QTableView
.例如:
QString codestring = "*" + ui->tblInventory->indexAt(QPoint(0,2)).data().toString() + "*";
Run Code Online (Sandbox Code Playgroud)
这应该在我的第0列第2行的单元格中获取文本QTableView
.问题是,这不是它在做什么!不管争论我通入QPoint()
的indexAt()
,我会在小区0,0中的文本.我不知道为什么这是......任何帮助?谢谢!
[编辑]
我也试过这个:
QString codestring = "*" + ui->tblInventory->model()->data(ui->tblInventory->indexAt(QPoint(0,2))).toString() + "*";
Run Code Online (Sandbox Code Playgroud)
[编辑2]试图找出发生了什么,我把这行代码:
qDebug()<< ui->tblInventory->indexAt(QPoint(2,2)).row() << " and " << ui->tblInventory->indexAt(QPoint(2,2)).column();
Run Code Online (Sandbox Code Playgroud)
它应该得到QModelIndex
at单元格2,2并输出它的行和它的列,当然应该是2和2.但是,我得到0和0!所以看起来这可能是一个问题QTableView::indexAt()
,无论是我的用法还是某种bug.任何人都能解释一下吗?
Jos*_*eph 26
已解决:
ui->tblInventory->model()->data(ui->tblInventory->model()->index(0,2)).toString()
Run Code Online (Sandbox Code Playgroud)
不太清楚为什么以上不起作用,但确实如此.谢谢您的帮助.
这个也工作,它更短:
QModelIndex index = model->index(row, col, QModelIndex());
ui->tblInventory->model()->data(index).toString();
Run Code Online (Sandbox Code Playgroud)
(model
使用top是绑定到此的QAbstractModel tblInventory
)