Python QTableView使用的PySide QFileSystemModel运行缓慢

Python QTableView使用的PySide QFileSystemModel运行缓慢,python,qt,pyside,Python,Qt,Pyside,Im在新应用程序中使用小部件提供当前目录中的文件列表。它可以工作,但启动操作非常慢,每当在目录树上或下移动时,新目录的更新和显示也很慢 下面是应用程序的文件浏览器部分使用的类 class FileList(QFrame): def __init__(self, parent=None): super(FileList, self).__init__(parent) # self.setFrameStyle(self.WinPanel|self.Raised) lo50

Im在新应用程序中使用小部件提供当前目录中的文件列表。它可以工作,但启动操作非常慢,每当在目录树上或下移动时,新目录的更新和显示也很慢

下面是应用程序的文件浏览器部分使用的类

class FileList(QFrame):
  def __init__(self, parent=None):
    super(FileList, self).__init__(parent)
    # self.setFrameStyle(self.WinPanel|self.Raised)
    lo50 = QVBoxLayout(self)
    lo50.setContentsMargins(0, 0, 0, 0)
    self.setLayout(lo50)
    self.cwdtext = QLineEdit(self)
    self.cwdtext.setReadOnly(True)

    lo50.addWidget(self.cwdtext)

    self.list = QTableView(self)
    self.list.setSortingEnabled(True)
    self.list.setShowGrid(False)
    self.list.setWordWrap(False)
    self.list.setCornerButtonEnabled(False)
    vh = self.list.verticalHeader()
    vh.hide()
    vh.setDefaultSectionSize(20)

    self.filemodel = QFileSystemModel(self)
    self.filemodel.setFilter(QDir.AllDirs | QDir.Files | QDir.NoDot | QDir.Drives | QDir.AllEntries)
    self.filemodel.setNameFilterDisables(False)

    self.list.setModel(self.filemodel)

    lo50.addWidget(self.list)
    self.chdir(QDir.currentPath())
    self.list.doubleClicked.connect(self.doubleclick)

def chdir(self, directory):
    newdir = obj2str(directory)
    i = self.filemodel.setRootPath(newdir)
    self.list.setRootIndex(i)
    cwd = os.path.abspath(newdir)
    os.chdir(cwd)
    self.cwdtext.setText(cwd)
    return i

def doubleclick(self, index):
    if self.filemodel.isDir(index):
        self.chdir(self.filemodel.filePath(index))
    else:
        print(self.filemodel.filePath(index))

我认为这取决于PySide和QFileSystemModel本身


我使用PySide版本1.2.1和QtCore 4.8.6,今天我发现它可以正常工作一个小时,没有对代码区域进行任何更改,然后又恢复到慢速运行。我想我可以为视图创建自己更简单的模型,或者尝试PyQt4。

您在哪个平台上?在Linux上对我来说很好。大约有5000个条目的文件夹在不到一秒钟的时间内加载,总体性能比专用的文件管理器应用程序要好一些,这可能是因为Windows 7上的icons.Im。这很奇怪,因为我看不出有什么好的理由来拖延。我也在使用少于100个文件的目录。如果Windows上的QFileSystemModel存在根本性问题,我会发现很多人对此表示不满。但是,尽管一些搜索确实发现了一些相关的bug报告,但并没有什么真正确定的。这使我怀疑您的系统设置中存在一些异常情况,可能会暴露出问题。您能够在其他一些Windows计算机上进行测试吗?我尝试在虚拟机中使用Win XP,加载windows/system32文件夹只需大约一秒钟。