To dwa kroki, sparsuj plik, a następnie wciśnij go do widżetu.
Złapałem te linie od QFile documentation.
QFile file("in.txt");
if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
return;
while (!file.atEnd()) {
QByteArray line = file.readLine();
process_line(line);
}
Twoja funkcja process_line powinna wyglądać następująco:
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++;
Aby uzyskać więcej informacji na temat manipulowania QTableWidgets sprawdzić documentation. Dla nowych użytkowników korzystających z kreatora GUI w Qt Creator, na początku jest to trudne.
Ostatecznie, chciałbym polecić przejście do budowania GUI w taki sposób, jak robią to w swoim examples ... dodając wszystko ręcznie w kodzie zamiast przeciągania i upuszczania.
To pytanie jest dość niejasne, używasz MVC lub 'tradycyjnych' widżety? Widżet tabeli ma postać 2D, więc w jaki sposób tekst zostanie umieszczony w tabeli? – cmannett85
W Qt Creator znajduje się kontrolka GUI o nazwie Table Widget, której używam. Myślałem, że to pytanie jest proste. Chcę wypełnić tabelę w moim GUI z tekstem rozdzielanym tabulatorami jako źródłem danych. Jeśli korzystasz z Widżetu tabeli, nie jest to najlepsze podejście, to jestem otwarty na inne sugestie. Jak już wspomniałem, jestem nowy w Qt. –
Dobrze 'QTableWidget' jest najlepszą opcją, jeśli chcesz wyświetlać tylko tekst, w siatce 2D, bez udostępniania danych z innymi widżetami. Otrzymasz również lepszą odpowiedź, jeśli zadałeś tylko jedno pytanie w poście: ładowanie pliku tekstowego, parsowanie go w oddzielne ciągi, a następnie popychanie do widżetu tabeli; są trzy bardzo różne procesy, i będę zaskoczony, jeśli każdy z nich nie zostanie wyjaśniony na tej stronie lub w dokumentach. – cmannett85