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

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

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

Войти через центр авторизации
Похожие вопросы