通过修改布局以包含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_()
非常感谢任何帮助。