ここ数時間、私は読んでいましたが、単純な一般的な問題と思われるものに対する適切な解決策を見つけられませんでした. QFileSystemModel を持つ QTreeView があります。現在のインデックスを、ユーザーが最後に保存したファイルに設定し、その位置までスクロールしたいと考えています。qfilesystemmodel は非同期で読み込まれるため、関数 scrollTo(mydesiredindex) をすぐに使用すると、次のようになります。
Model = new QFileSystemModel;
Model->setRootPath(RootDirectory);
Model->setFilter(QDir::Dirs | QDir::NoDotAndDotDot);
ui.RootView->setModel(Model);
ui.RootView->setCurrentIndex(Model->index(LastUsedPath));
ui.RootView->scrollTo(Model->index(LastUsedPath));
qtreeview はファイルの現在の場所までスクロールしますが、その前にさらにファイルを追加するため、mydesiredindex はビューから押し出されます。
モデルがツリー ビューへの入力を完了したというシグナルを取得しようとしましたが、役に立ちませんでした。シグナル directoryLoaded(const QString &) および rowsInserted(const QModelIndex &, int, int)) は、モデルの作成が完了する前にシグナルを送信します。
誰の助けにも感謝します。