문제

디렉토리의 모든 파일과 폴더를 탐색하기 위해 Qtreeview에서 QsortFilterProxymodel을 사용하고 있습니다. 잘 작동합니다. 그러나 내 문제는 Qtreeview의 항목을 클릭 할 때입니다. 전체 경로와 같은 정보를 얻을 수 없습니다. 누구든지 파일의 전체 경로를 얻는 방법을 알려주시겠습니까?

감사,

도움이 되었습니까?

해결책

다음 방법으로 전체 경로를 계산할 수 있습니다. 먼저 마우스 클릭을 추적해야합니다 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;
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top