Как обновить QSqlTableModel, QTableView после изменения подключения к базе данных - PullRequest
1 голос
/ 30 января 2012

Я уже спрашивал раньше, но теперь у меня есть еще вопросы.

Итак, у меня есть QTableView и QSQLTableModel.

pTableModel->setTable("table_name");
pTableView->setModel(pTableModel);

В QTableView мне нужно показать только столбец с указанными именамиДля этого я использую setColumnHidden ().

Теперь мне нужно изменить БД и показать указанные столбцы таблицы с тем же именем.Что является лучшим способом сообщить табличному представлению и табличной модели, что БД была изменена.Таблица в новой БД может отличаться по количеству столбцов, количеству строк, но содержит все необходимые столбцы.

Теперь я снова вызываю

pTableModel->setTable("table_name");

с тем же именем таблицы, чтобы обновить модель таблицы.И позвоните

pTableView->horizontalHeader()->doItemsLayout();

, чтобы сообщить табличному представлению о возможном изменении количества столбцов.

Кажется, это уродливо, и я не уверен, что все необходимые данные были обновлены.Ты знаешь лучший способ?

1 Ответ

0 голосов
/ 30 января 2012

По моему мнению, вам нужно создать новый QSQLTableModel для нового подключения к базе данных и назначить его pTableView .Я думаю, что это более безопасно.

...