我試圖在QTableView
的某個單元格中獲取文本。例如:Qt/C++:在QTableView的某個單元格中獲取數據
QString codestring = "*" + ui->tblInventory->indexAt(QPoint(0,2)).data().toString() + "*";
這應該讓在小區中列0 2行中的文字在我的QTableView
。問題是,這不是它在做什麼!無論我傳入QPoint()
,indexAt()
的參數如何,我都會在單元格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()
的一個問題,無論是我的使用還是某種錯誤。任何人都可以點亮一下嗎?
檢查我的答案。 – SIFE 2012-02-19 23:41:52
indexAt(QPoint(0,2)將返回位於窗口小部件位置X = 0處的單元格的QModelIndex Y = 2,而不是Row/Col 0,2 – 2013-02-02 21:33:28