Il s'agit de deux étapes, analyser le fichier, puis le pousser dans le widget. J'ai saisi ces lignes de QFile documentation.
QFile file("in.txt");
if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
return;
while (!file.atEnd()) {
QByteArray line = file.readLine();
process_line(line);
}
Votre fonction process_line devrait ressembler à ceci:
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++;
Pour plus d'informations sur la manipulation QTableWidgets, vérifiez la documentation. Pour les nouveaux utilisateurs utilisant le générateur GUI dans Qt Creator, il est difficile de le comprendre au début. Finalement, je recommanderais de passer à la construction de l'interface graphique comme ils le font dans examples ... en ajoutant tout à la main dans le code au lieu de glisser-déposer.
Cette question est assez vague, utilisez-vous MVC ou les widgets 'traditionnels'? Un widget de table est 2D, alors comment le texte va-t-il être disposé dans la table? – cmannett85
Dans Qt Creator, il existe un contrôle graphique appelé Tableau Widget, que j'utilise. Je pensais que la question était simple. Je veux remplir une table dans mon interface graphique avec un fichier texte délimité par des tabulations comme source des données. Si vous utilisez un widget de table, ce n'est pas la meilleure approche, alors je suis ouvert à d'autres suggestions. Comme je l'ai mentionné, je suis nouveau à Qt. –
Eh bien 'QTableWidget' est la meilleure option si vous voulez afficher uniquement du texte, dans une grille 2D, sans partager les données avec d'autres widgets. En outre, vous obtiendrez une meilleure réponse si vous avez seulement posé une seule question dans votre message: charger un fichier texte, l'analyser dans des chaînes séparées, puis les pousser dans un widget de table; sont trois processus très différents, et je serai surpris si chacun d'entre eux ne sont pas expliqués sur ce site ou les docs. – cmannett85