J'ai une liste d'éléments affichés dans un QTableWidget, chacun correspondant à un dossier spécifique.Comment effacer un QTreeView/QFileSystemModel
À côté de cela, j'ai un QTreeView, avec un QFileSystemModel. Lorsque je sélectionne un élément de QTableWidget, il appelle un emplacement (illustré ci-dessous) afin d'afficher le contenu du dossier correspondant.
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();
}
}
}
Si le répertoire n'existe pas, je ne veux rien afficher. Cependant, lorsque j'essaie de définir un chemin racine vide ou de réinitialiser la vue, tous les disques de mon ordinateur sont affichés. Comment réinitialiser ou effacer le QTreeView?
Comment réinitialiser ou effacer QTreeView?
Pourriez-vous définir le chemin d'accès racine à un répertoire vide que vous contrôlez? –
Il me rappelle ce post: http://stackoverflow.com/questions/3212392/qtreeview-qfilesystemmodel-setrootpath-et-qsortfilterproxymodel-with-regexp-f – Mikitori
@ GeorgSchölly Définir le chemin racine à un répertoire vide fonctionne, mais j'étais à la recherche d'une solution plus propre ... – Arnaud