Вообще, тут есть много путей (ктоб, мать его, сомневался, это жеж программирование...). Я бы создал дополнительный класс в отдельном потоке, который с определенной частотой проверял бы хэш-сумму файла. Изменение суммы будет означать, что в файл что-то дописали. В этот момент из потока-вотчера идет сигнал в слот основного gui-потока, что надо бы перезаполнить табличку. Можно писать не просто в файл, а допустим в sqlite3 базу (по сути тоже обычный файл), тогда для отображения элементов можно использовать QListView с QSqlTableModel (эта модель, к слову, позволяет напрямую писать в базу, QSqlQueryModel из коробки так не умеет, надо имплементировать самому метод записи). Кстати, если ты сам и добавляешь что-то в файл, то в момент добавления, просто давай сигнал, что надо считать последнюю строку или куда ты там дописываешь...