Sono due passaggi, analizza il file e quindi lo inserisce nel widget.
Ho preso queste righe dallo QFile documentation.
QFile file("in.txt");
if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
return;
while (!file.atEnd()) {
QByteArray line = file.readLine();
process_line(line);
}
La vostra funzione process_line dovrebbe essere simile a questo:
static int row = 0;
QStringList ss = line.split('\t');
if(ui->tableWidget->rowCount() < row + 1)
ui->tableWidget->setRowCount(row + 1);
if(ui->tableWidget->columnCount() < ss.size())
ui->tableWidget->setColumnCount(ss.size());
for(int column = 0; column < ss.size(); column++)
{
QTableWidgetItem *newItem = new QTableWidgetItem(ss.at(column));
ui->tableWidget->setItem(row, column, newItem);
}
row++;
Per ulteriori informazioni su QTableWidgets manipolare, controllare il documentation. Per i nuovi utenti che usano il builder della GUI in Qt Creator, è difficile capirlo all'inizio.
Eventualmente vorrei raccomandare di passare alla costruzione della GUI come fanno in tutto il loro examples ... aggiungendo tutto manualmente nel codice invece di trascinarlo e rilasciarlo.
Questa domanda è molto vaga, stai usando MVC o dei widget 'tradizionali'? Un widget di tabella è 2D, quindi come sarà disposto il testo nella tabella? – cmannett85
In Qt Creator, c'è un controllo della GUI chiamato Table Widget che è quello che sto usando. Pensavo che la domanda fosse semplice. Voglio popolare una tabella nella GUI con un file di testo delimitato da tabulazione come origine dei dati. Se si utilizza un Table Widget, non è l'approccio migliore, quindi sono aperto ad altri suggerimenti. Come ho detto, sono nuovo di Qt. –
Bene 'QTableWidget' è l'opzione migliore se si desidera visualizzare solo il testo, in una griglia 2D, senza condividere i dati con altri widget. Inoltre otterrai una risposta migliore se ti viene posta una sola domanda nel tuo post: caricamento di un file di testo, analisi in stringhe separate e quindi inserimento in un widget di tabella; sono tre processi molto diversi, e sarò sorpreso se ognuno di essi non viene spiegato su questo sito o sui documenti. – cmannett85