gpt4 book ai didi

python - QFileSystemModel 检索点击文件的文件路径

转载 作者:太空宇宙 更新时间:2023-11-04 00:33:29 25 4
gpt4 key购买 nike

我正在尝试创建一个文件资源管理器,您可以在其中查找文件。找到后,用户应该能够选择他要上传的文件。因此我需要所选文件的路径。

这是我当前的代码:

import sys
from PyQt4.QtGui import *

class Explorer(QWidget):
def __init__(self):
super(Explorer, self).__init__()

self.resize(700, 600)
self.setWindowTitle("File Explorer")
self.treeView = QTreeView()
self.fileSystemModel = QFileSystemModel(self.treeView)
self.fileSystemModel.setReadOnly(True)

root = self.fileSystemModel.setRootPath("C:")
self.treeView.setModel(self.fileSystemModel)

Layout = QVBoxLayout(self)
Layout.addWidget(self.treeView)
self.setLayout(Layout)

if __name__ == "__main__":
app = QApplication(sys.argv)
fileExplorer = Explorer()
fileExplorer .show()
sys.exit(app.exec_())

如何获取用户点击文件的路径?感谢您的帮助

最佳答案

为了获取路径,我们必须使用 QFileSystemModel::filePath()方法:

QString QFileSystemModel::filePath(const QModelIndex &index) const

Returns the path of the item stored in the model under the indexgiven.

这需要一个QModelIndex,这个可以通过QTreeView的clicked信号得到。为此,我们必须将它连接到某个插槽,在这种情况下:

    self.treeView.clicked.connect(self.onClicked)

def onClicked(self, index):
# self.sender() == self.treeView
# self.sender().model() == self.fileSystemModel
path = self.sender().model().filePath(index)
print(path)

完整代码:

import sys
from PyQt4.QtGui import *

class Explorer(QWidget):
def __init__(self):
super(Explorer, self).__init__()

self.resize(700, 600)
self.setWindowTitle("File Explorer")
self.treeView = QTreeView()
self.treeView.clicked.connect(self.onClicked)
self.fileSystemModel = QFileSystemModel(self.treeView)
self.fileSystemModel.setReadOnly(True)

self.fileSystemModel.setRootPath("C:")
self.treeView.setModel(self.fileSystemModel)

Layout = QVBoxLayout(self)
Layout.addWidget(self.treeView)
self.setLayout(Layout)

def onClicked(self, index):
path = self.sender().model().filePath(index)
print(path)

if __name__ == "__main__":
app = QApplication(sys.argv)
fileExplorer = Explorer()
fileExplorer .show()
sys.exit(app.exec_())

关于python - QFileSystemModel 检索点击文件的文件路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45046874/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com