SetRootPath 未按预期设置工作

SetRootPath doesn't set work as expected

我使用了这个 post

中的部分代码 (PyQt5)
from PyQt5.QtWidgets import QTreeView,QFileSystemModel,QApplication

class Main(QTreeView):
    def __init__(self):
        QTreeView.__init__(self)
        model = QFileSystemModel()
        model.setRootPath('C:\')
        self.setModel(model)
        self.doubleClicked.connect(self.test)

    def test(self, signal):
        file_path=self.model().filePath(signal)
        print(file_path)


if __name__ == '__main__':
    import sys
    app = QApplication(sys.argv)
    w = Main()
    w.show()
    sys.exit(app.exec_())

我对这条线有疑问

model.setRootPath('C:\')

当我 运行 程序时,它总是显示像 C: D: 这样的驱动器,而不是 C:\ 的内容,或者即使我键入 "C:\Users\" 或根本不存在的路径,它总是只显示,见附图,我做错了什么?

显示文件管理器的 PyQt 程序图像

我正在使用: Windows 10, PyCharm, Python3.5, PyQt5,

感谢您的帮助。

您必须用 setRootIndex()QTreeView 表明您的根项是什么:

from PyQt5.QtCore import QDir

from PyQt5.QtWidgets import QTreeView,QFileSystemModel,QApplication

class Main(QTreeView):
    def __init__(self):
        QTreeView.__init__(self)
        model = QFileSystemModel()
        self.setModel(model)
        model.setRootPath(QDir.rootPath())
        self.setRootIndex(model.index("C:"))
        self.doubleClicked.connect(self.test)

    def test(self, signal):
        file_path=self.model().filePath(signal)
        print(file_path)


if __name__ == '__main__':
    import sys
    app = QApplication(sys.argv)
    w = Main()
    w.show()
    sys.exit(app.exec_())