如何在数据库连接更改后更新QSqlTableModel,QTableView

时间:2012-01-30 13:30:04

标签: database qt qtableview

我之前已经问过,但现在我还有更多问题。

所以,我有QTableView和QSQLTableModel。

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

在QTableView中,我只需要显示具有指定名称的列,我使用setColumnHidden()来实现此目的。

现在我需要更改数据库并显示具有相同名称的表的指定列。有什么更好的方法来通知表格视图和表格模型已更改数据库。新数据库中的表可能因列数,行数而异,但具有所有必需的列。

现在我打电话给

pTableModel->setTable("table_name");

再次使用相同的表名来更新表模型。并致电

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

通知表格视图有关列数的可能更改。

这似乎很难看,我不确定所有必要的数据是否都已更新。你知道更好的方法吗?

1 个答案:

答案 0 :(得分:-1)

在我看来,你必须为新的数据库连接实例化新的 QSQLTableModel 并将其分配给 pTableView 。我认为它更安全。