Я создал один диалог, который используется только для bindValues
в базе данных SQL,
и я могу успешно сохранить каждую новую запись. Проблема в том, что у меня есть еще один диалог с QSQlTableModel
это показывает только информацию из базы данных. Каждый раз, когда я делаю новую запись, я должен закрыть программу и запустить ее снова, чтобы увидеть изменения в ShowInformationDialog()
,
Знаете ли вы какой-нибудь способ, чтобы мне не нужно было закрывать программу, чтобы обновить информацию в моем ShowInformationDialog()
?
Ты можешь использовать select()
метод QSqlTableModel
Класс для пополнения модели данными из базы данных. Связанные виды обновляются автоматически. Я предлагаю подключить сигнал от того места, где вы обновляете данные в базе данных (т.е. ваш диалог обновляет базу данных SQL), к пользовательскому слоту в вашем ShowInformationDialog()
что вызывает select()
из QSqlTableModel
объект. Я полагаю, у вас есть QMainWindow
объект, который является родителем обоих диалогов, что, скорее всего, будет лучшим местом для установления соединения.
Кроме того, так как ваш ShowInformationDialog()
Модель используется только для просмотра данных. QSqlQueryModel
, Если это используется, то setQuery()
метод должен быть использован вместо select()
но в противном случае (подключение сигнала к ShowInformationDialog()
это слот) было бы тоже самое.
Других решений пока нет …