2012-01-30 32 views
1

私はすでに以前に質問しましたが、今はもっと質問があります。データベースの接続が変更された後、QSqlTableModel、QTableViewを更新する方法

私はQTableViewとQSQLTableModelを持っています。 QTableViewで

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

私はこのためにsetColumnHidden()を使用して、指定された名前の列のみを表示する必要があります。

ここで、DBを変更して、同じ名前の表の指定した列を表示する必要があります。 DBが変更されたテーブルビューとテーブルモデルを通知するより良い方法は何ですか。新しいDB内のテーブルは、列数、行数によって異なる場合がありますが、すべての必要な列があります。

は今、私はテーブルモデルを更新するために、同じテーブル名を指定して、もう一度

pTableModel->setTable("table_name"); 

を呼び出します。そして、

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

を呼び出して、可能な列数の変更についてのテーブルビューを通知してください。

醜いと思われ、必要なデータがすべて更新されているかどうかわかりません。あなたはもっと良い方法を知っていますか?私の意見で

答えて

-1

は、新しいデータベース接続のためのQSQLTableModel新しいインスタンス化し、pTableViewに割り当てる必要があります。私はそれがより安全だと思う。

関連する問題