Как обновить данные в приложении без выхода из него?

Привет.
Предположим, что у меня есть файл в котором записан список продуктов (на каждой строке свой продукт)
И вывел этот список используя QVBoxLayout и QLabel.
И у меня есть кнопка добавить. И при добавление продукта содержимое файла обновляется.
Но список в приложении не изменился, дак вот как сделать так, чтобы список в приложении изменился, чтобы не пришлось выходить и снова заходить в приложение?
  • Вопрос задан
  • 167 просмотров
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
Нужно написать код обновляющий компоненты графического интерфейса.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Dogrtt
Qt/Python разработчик
Вообще, тут есть много путей (ктоб, мать его, сомневался, это жеж программирование...). Я бы создал дополнительный класс в отдельном потоке, который с определенной частотой проверял бы хэш-сумму файла. Изменение суммы будет означать, что в файл что-то дописали. В этот момент из потока-вотчера идет сигнал в слот основного gui-потока, что надо бы перезаполнить табличку. Можно писать не просто в файл, а допустим в sqlite3 базу (по сути тоже обычный файл), тогда для отображения элементов можно использовать QListView с QSqlTableModel (эта модель, к слову, позволяет напрямую писать в базу, QSqlQueryModel из коробки так не умеет, надо имплементировать самому метод записи). Кстати, если ты сам и добавляешь что-то в файл, то в момент добавления, просто давай сигнал, что надо считать последнюю строку или куда ты там дописываешь...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы