Qt / C++: obtenir les données à une certaine cellule dans une vue QTableView
 j'essaie d'obtenir le texte d'une certaine cellule dans un QTableView. Par exemple:
QString codestring = "*" + ui->tblInventory->indexAt(QPoint(0,2)).data().toString() + "*";
Cela devrait faire passer le texte à la cellule dans la colonne 0, ligne 2 dans mon QTableView. Le problème est, ce n'est pas ce qu'il fait!. Indépendamment des arguments que je passe dans le QPoint() dans le indexAt(), je reçois le message à la cellule 0,0. Je n'ai aucune idée de pourquoi c'est... toute aide? Merci!
 [edit]
J'ai aussi essayé ceci: 
QString codestring = "*" + ui->tblInventory->model()->data(ui->tblInventory->indexAt(QPoint(0,2))).toString() + "*";
[Modifier 2] Essayer de trouver ce qu'il se passe, je l'ai mis dans cette ligne de code:
qDebug()<< ui->tblInventory->indexAt(QPoint(2,2)).row() << " and " <<  ui->tblInventory->indexAt(QPoint(2,2)).column();
il devrait obtenir le QModelIndex à la cellule de 2,2 et de la sortie de sa ligne et de sa colonne, ce qui bien sûr doit être de 2 et 2. Cependant, j'ai 0 et 0! Donc il semble que cela pourrait être un problème avec QTableView::indexAt(), si son utilisation ou une sorte de bug. Quelqu'un peut jeter un peu de lumière?
4 réponses
Résolu avec:
ui->tblInventory->model()->data(ui->tblInventory->model()->index(0,2)).toString()
Je ne suis pas tout à fait sûr de savoir pourquoi cela ne fonctionne pas, mais cela fonctionne. Merci pour l'aide.
celui-ci trop de travail et c'est plus court:
QModelIndex index = model->index(row, col, QModelIndex());
ui->tblInventory->model()->data(index).toString();
 (model le top utilisé est le QAbstractModel qui est lié à ce tblInventory)
Case data() fonction fournie par le modèle de votre QTableView utilise, l'effet que vous décrivez est probablement observé en raison d'un bug.
essaye ceci:
QModelIndex index = ui->tblInventory->indexAt(p); // p is a QPoint you get from some where, may be you catch right click
QString codestring = "*" + index->data().toString() + "*";