Seite 1 von 1

QTreeView / QDirModel -> wechselnde Verzeichnisse

Verfasst: 8. Juli 2008 20:29
von sigvdr
Hallo,
and the contents of a particular directory can be displayed by setting the tree view's root index:
tree->setRootIndex(model->index(QDir::currentPath()));
So kann ich laut Beschreibung das "root Verzeichnis" in einem QTreeView setzen.

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;		
		}
	}
*/
Gruß Sig