QTableWidgetに表示されるアイテムのリストがあり、それぞれが特定のフォルダに対応しています。QTreeView/QFileSystemModelをクリアする方法
この次にQFreeSystemModelを持つQTreeViewがあります。 QTableWidgetから項目を選択すると、対応するフォルダの内容を表示するためにスロットが呼び出されます(下図参照)。
void MyWidget::diplayFolder(int row)
{
if (auto item = table->item(row, 1))
{
QString correspondingDirectory = item->text();
if (QDir(correspondingDirectory).exists())
{
// treeModel => QFileSystemModel
// tree => QTreeView
treeModel->setRootPath("");
treeModel->setRootPath(correspondingDirectory);
tree->setRootIndex(treeModel->index(correspondingDirectory));
}
else
{
qDebug() << "Reset tree => do not display anything!";
// treeModel->setRootPath("");
// tree->reset();
}
}
}
ディレクトリが存在しない場合は、何も表示しません。しかし、空のルートパスを設定したりビューをリセットしようとすると、すべてのコンピュータドライブが表示されます。
QTreeViewをリセットまたはクリアするにはどうすればよいですか?
制御する空のディレクトリにルートパスを設定できますか? –
それは私にこのポストを思い出させます:http://stackoverflow.com/questions/3212392/qtreeview-qfilesystemmodel-setrootpath-and-qsortfilterproxymodel-with-regexp-f – Mikitori
@GeorgSchöllyルートディレクトリを空のディレクトリに設定すると機能しますが、より洗練されたソリューションを探しています... – Arnaud