Название: Не заполняет ячейки таблицы QTableWidget
Отправлено: Aliko от Июнь 03, 2013, 11:25
Собственно мне нужно заполнить таблицу, считывая данные из файла Строки и ячейки появляются как нужно, но ячейки остаются пустыми. void phones::readtxt() { QTableWidgetItem *newItem = new QTableWidgetItem; // int row = ui->tablePhones->rowCount(); QFile file(qApp->applicationDirPath() + QDir::separator() + "phones.txt"); if(!file.open(QIODevice::ReadOnly)) return; QTextStream stream(&file); quint64 linecount=0x00; QString line; do { line = stream.readLine(); // увеличим счетчик строк if(!line.isNull()) { linecount++;} } while (!line.isNull());
QString str; for(int i=0; i!=linecount;i++){ int row = ui->tablePhones->rowCount(); ui->tablePhones->insertRow(row); for (int j=0; j!=5; j++) { stream >>str; newItem = new QTableWidgetItem; newItem->setText(str); ui->tablePhones->setItem(ui->tablePhones->currentRow(),j, newItem);
} }
}
Название: Re: Не заполняет ячейки таблицы QTableWidget
Отправлено: mutineer от Июнь 03, 2013, 11:33
C++ (Qt) do { line = stream.readLine(); // увеличим счетчик строк if(!line.isNull()) { linecount++;} } while (!line.isNull());
После этого цикла поток дошел до конца файла и читать оттуда уже нечего. Поэтому в следующем цикле все считанные строки пустые
Название: Re: Не заполняет ячейки таблицы QTableWidget
Отправлено: Aliko от Июнь 03, 2013, 14:24
Убрала этот цикл, но данные все-равно не вставляются C++ (Qt) void phones::readtxt() { QTableWidgetItem *newItem = new QTableWidgetItem; QFile file(qApp->applicationDirPath() + QDir::separator() + "phones.txt"); if(!file.open(QIODevice::ReadOnly)) return; QTextStream stream(&file); QString str; while (!stream.atEnd()){ int row = ui->tablePhones->rowCount(); ui->tablePhones->insertRow(row); for (int j=0; j!=5; j++) { stream >>str; newItem = new QTableWidgetItem; newItem->setText(str); ui->tablePhones->setItem(ui->tablePhones->currentRow(),j, newItem); } } }
Название: Re: Не заполняет ячейки таблицы QTableWidget
Отправлено: mutineer от Июнь 03, 2013, 14:31
А чему равно ui->tablePhones->currentRow() и почему ты данные именно в эту строку все пихаешь? Ну и до кучи: C++ (Qt) QTableWidgetItem *newItem = new QTableWidgetItem;
В этой строке создается объект, который нигде не используется. В чем смысл?
Название: Re: Не заполняет ячейки таблицы QTableWidget
Отправлено: Aliko от Июнь 03, 2013, 15:35
А чему равно ui->tablePhones->currentRow() и почему ты данные именно в эту строку все пихаешь? Поменяла это на row и все заработало Ну и до кучи: C++ (Qt) QTableWidgetItem *newItem = new QTableWidgetItem;
В этой строке создается объект, который нигде не используется. В чем смысл? И правда он не нужен. Большое спасибо за помощь)
|