Domanda

Sto cercando di ottenere il testo ad una certa cella in una QTableView. Ad esempio:

QString codestring = "*" + ui->tblInventory->indexAt(QPoint(0,2)).data().toString() + "*";

Questo dovrebbe ottenere il testo alla cella nella colonna 0 riga 2 nella mia QTableView. Il problema è, che non è quello che sta facendo !. A prescindere dalle argomentazioni che passano nella QPoint() nel indexAt(), ricevo il testo in cella di 0,0. Non ho idea perché questo è ... alcun aiuto? Grazie!

[modifica]
Ho anche provato questo:

QString codestring = "*" + ui->tblInventory->model()->data(ui->tblInventory->indexAt(QPoint(0,2))).toString() + "*";

[Modifica 2] Cercando di scoprire che cosa sta succedendo, ho messo in questa riga di codice:

qDebug()<< ui->tblInventory->indexAt(QPoint(2,2)).row() << " and " <<  ui->tblInventory->indexAt(QPoint(2,2)).column();

Si dovrebbe ottenere il QModelIndex dalla cella 2,2 e l'uscita relativa riga e relativa colonna, che ovviamente deve essere 2 e 2. Tuttavia, ottengo 0 e 0! Così sembra che questo potrebbe essere un problema con QTableView::indexAt(), se il suo uso della mia o una sorta di bug. Qualcuno può far luce?

È stato utile?

Soluzione

Risolto con:

ui->tblInventory->model()->data(ui->tblInventory->model()->index(0,2)).toString()

Non capisco il motivo per cui quanto sopra non funziona, ma questo lo fa. Grazie per l'aiuto.

Altri suggerimenti

Questo lavoro troppo ed è più breve:

QModelIndex index = model->index(row, col, QModelIndex());

ui->tblInventory->model()->data(index).toString();

(model usati superiore è il QAbstractModel che è destinato a questo tblInventory)

Controllare il funzionamento data() fornita dal modello che utilizza il vostro QTableView, l'effetto che si descrive è probabilmente osservato a causa di un bug in esso.

Prova questo:

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() + "*";
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top