この関数では、各 QTreeWidgetItem を対応するクエリに接続しようとしています。アイテムを選択すると、テーブルビュー モデルにクエリ結果を持つ Dock ウィジェットが表示されます。
私が欲しいのは、新しいアイテムを選択すると、表示されたドックウィジェットが非表示になり、新しいアイテムが新しい結果とともに表示されることです。私が今まで持っているのは、新しい Dock ウィジェットを選択した各アイテムが表示されることです。ドック ウィジェットを 1 つだけ表示したい。
ここに私の機能があります
void MainWindow::DocumentTable()
{
tableview = new QTableView;
query = new QSqlQueryModel(this);
foreach(it,treeWidget->selectedItems())
{
for (int col=0; col< it->columnCount(); ++col)
{
qDebug() << col << it->text(col);
QSqlQuery qry;
qry.prepare("select * from document where Folno=:Folno");
qry.bindValue(":Folno", it->text(col));
qry.exec();
query->setQuery(qry);
tableview->setModel(query);
tableview->setEditTriggers(QAbstractItemView::NoEditTriggers);
tableview->show();
Docwidget= new QDockWidget(this);
Docwidget->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
Docwidget->setWidget(tableview);
addDockWidget(Qt::RightDockWidgetArea,Docwidget);
Docwidget->show();
if(!query->submit())
{
qDebug() << "Error " << query->lastError().text();
}
db.close();
}
}
}
何か案は ??:)