0

ディレクトリのすべてのファイルとフォルダーを探索するために、QTreeView で QSortFilterProxyModel を使用しています。その正常に動作します。しかし、私の問題は、QTreeView のいずれかの項目をクリックしたときです。フルパスなどの情報を取得できません。ファイルのフルパスを取得する方法を教えてください。

ありがとう、

4

1 に答える 1

0

次の方法でフルパスを計算できます。まず、信号を適切なスロットにQTreeView接続して、マウスのクリックを追跡する必要があります。clicked()

connect(treeview, SIGNAL(clicked(const QModelIndex &)), this, SLOT(onItemClicked(const QModelIndex &)); 

スロットで、クリックしたツリー ノードのフル パスを返すヘルパー関数を呼び出すことができます。

void TreeView::onItemClicked(const QModelIndex &index)
{
    QString path = fullPath(index);
    // ..
}

QString TreeView::fullPath(const QModelIndex &index)
{
    QString path('/');
    QModelIndex parent = index;
    while (parent.isValid()) {
        path.prepend('/' + parent.data().toString());
        parent = parent.parent();
    }
    return path;
}
于 2013-11-07T12:40:01.167 に答える