معلومات كاملة عن الملفات والمجلدات في عناصر qsortfilterproxymodel

StackOverflow https://stackoverflow.com/questions/19834850

سؤال

أنا أستخدم QSortFilterProxyModel في QtreeView لاستكشاف جميع ملفات ومجلدات الدليل. يعمل بشكل جيد. لكن مشكلتي هي عندما أنقر على أي من عناصر 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