Потому, что для каждой ячейки нужно создавать свой элемент QTableWidgetItem:
C++ (Qt)
QString line;
QFile file(QApplication::applicationDirPath()+"/log.txt");
if(file.open(QIODevice::ReadOnly | QIODevice::Text))
{
QTextStream textStream(&file);
for(int i = 0; !textStream.atEnd(); i++)
{
line = textStream.readLine(); // Читать лучше из потока, если уже его создали. :)
QTableWidgetItem *item = new QTableWidgetItem();
item->setText(line);
ui->tableWidget->setItem(0,i,item);
}
file.close();
}