另一个问题的解决办法是不必要的复杂。您只需重写QFileDialog.accept(),然后就可以自由地实现您喜欢的任何行为。在
下面的例子非常简单。它不检查所选的文件(比如查看它们是否仍然存在),但如果需要,可以很容易地添加这些文件。在from PyQt4 import QtCore, QtGui
class FileDialog(QtGui.QFileDialog):
def __init__(self, *args, **kwargs):
super(FileDialog, self).__init__(*args, **kwargs)
self.setOption(QtGui.QFileDialog.DontUseNativeDialog, True)
self.setFileMode(QtGui.QFileDialog.ExistingFiles)
def accept(self):
super(FileDialog, self).accept()
class Window(QtGui.QWidget):
def __init__(self):
super(Window, self).__init__()
self.button = QtGui.QPushButton('Test', self)
self.button.clicked.connect(self.handleButton)
layout = QtGui.QVBoxLayout(self)
layout.addWidget(self.button)
def handleButton(self):
dialog = FileDialog()
if dialog.exec_() == QtGui.QDialog.Accepted:
print(dialog.selectedFiles())
if __name__ == '__main__':
import sys
app = QtGui.QApplication(sys.argv)
window = Window()
window.show()
sys.exit(app.exec_())