PyQt和QtreeView:如何从所选文件中获取路径

时间:2013-01-17 18:10:06

标签: python pyqt qtreeview

我是PyQt的初学者。所有都在标题中:我不明白如何从所选文件中获取路径(和名称)? 我希望以后用这条路径更新QListView。

这是我的剧本:

# -*- coding: utf-8 -*-
from PyQt4.QtGui import *
from PyQt4.QtCore import *

import sys

class MyWidget(QWidget):
    # SIGNAUX
    tree_model_indexSig = pyqtSignal(QModelIndex)

    def __init__(self, parent=None):
        super(MyWidget, self).__init__(parent)

        # connect signaux to slots
        self.tree_model_indexSig.connect(self.indexSlot)

        self.model = QFileSystemModel()
        self.model.setRootPath(QDir.rootPath())

        ''' GUI '''
        # instantiation du treeview et du listview
        self.treeView = QTreeView(self)
        self.treeView.setGeometry(QRect(10, 20, 601, 231))
        self.treeView.setObjectName("treeView")

        ''' END GUI '''

        self.treeView.setModel(self.model)
        self.treeView.setRootIndex(self.model.index(QDir.rootPath()))
        # clicked.CONNECT
        self.treeView.clicked.connect(self.treeClicked)
        self.treeView.show()


    def treeClicked(self, checked=False):
        # EMIT 
        self.tree_model_indexSig.emit(self.model.index(QDir.rootPath()))
    # Definition des slots
    def indexSlot(self, *args):
        # 1 argument --> ModelIndex
        path = QDirModel(args[0]).filePath(args[0].currentIndex())
        print path
        '''
        How get the path from the selected file ??
        '''

if __name__=='__main__':
    app = QApplication(sys.argv)
    widget = MyWidget()
    widget.show()
    app.exec_()

感谢您的帮助!

0 个答案:

没有答案