为什么QFileDialog的selectedFiles方法返回过时的文件列表?

时间:2014-09-30 17:50:10

标签: python pyqt

通过修改布局以包含pyqtgraph QFileDialog,我成功地将科学数据的预览窗格添加到PlotWidget。我将currentChanged信号连接到一个自定义函数,该函数根据它从信号中接收的文件名来绘制数据。一切都很好。

接下来我试着看看我是否可以同时绘制多个不同的文件。由于currentChanged仅传递最近选择的文件,因此我尝试使用selectedFiles方法获取所选文件的列表。我发现列表总是过时的:它包含除最近选择的值之外的所有值。这感觉就像一个错误......

不幸的是,我不能简单地将currentChanged传递的文件名附加到QStringList返回的selectedFiles,因为有些情况会导致错误的结果:例如当我从选择八个文件到只有一个。

有没有办法强制更新当前所选值的列表?

这是我目前正忙着的代码。我在Linux Mint 16上使用PyQt4版本4.10.3。

preview_dialog = QFileDialog()
preview_dialog.setFileMode(QtGui.QFileDialog.ExistingFiles)

def processFiles(filename):
    # The passed filename is always correct
    print filename

    # The following always returns an outdated list
    all_files = preview_dialog.selectedFiles()

    for f in all_files:
        do_something_with_my_file(str(f))

preview_dialog.currentChanged.connect(processFiles)
preview_dialog.exec_()

非常感谢任何帮助。

0 个答案:

没有答案