So kann ich laut Beschreibung das "root Verzeichnis" in einem QTreeView setzen.and the contents of a particular directory can be displayed by setting the tree view's root index:
tree->setRootIndex(model->index(QDir::currentPath()));
Wenn ich jetzt verschiedene ( nacheinander ) Verzeichnisse im Netzwerk mounte und diesen MountPoint dem QDirModel zuweise, dann werden die entsprechenden Verzeichnisse nur unzuverlässig angezeigt. In ca. 70% aller Versuche werden andere Verzeichnisse angezeigt. Um Zeitprobleme auszuschließen habe ich "mount" und die Zuweisung an das QTreeView auf 2 Buttons gelegt und nicht direkt hintereinander durchgeführt.
QModelIndex QDirModel::index(Pfad)
QModelIndex QTreeView::rootIndex()
Bei diesen beiden Funktionen wird nicht immer ein gültiger Ruckgabewert geliefert ( im Sinne von QModelIndex::isValid() ) , deshalb die zweite lange Variante. So gehts aber auch nicht.
Code: Alles auswählen
QTreeView *dirVdr;
QDirModel dirVdrModel ;
...
...
Code: Alles auswählen
QModelIndex idx = dirVdrModel.index(MountPoint());
dirVdr->setRootIndex(idx);
dirVdrModel.refresh();
// So gehts auch nicht
/* while ( true ) {
QModelIndex idx = dirVdrModel.index(MountPoint());
while ( !idx.isValid() ) {
idx = dirVdrModel.index(MountPoint());
}
dirVdr->setRootIndex(idx);
dirVdrModel.refresh();
idx = dirVdr->rootIndex();
if ( idx.isValid() ) {
return;
}
}
*/