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

问题描述:

我已经问过,但现在我有更多的问题。如何更新数据库连接更改后的QSqlTableModel,QTableView

所以,我有QTableView和QSQLTableModel。

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

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

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

现在我再次拨打

pTableModel->setTable("table_name"); 

与同桌的名字更新表模型。并呼吁

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

通知表视图约数列的可能变化。

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

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