This question already exists here , but the answer seems outdated or no longer works with Python 2.7.
When I use this code to subclass my QFileDialog, the initDialog init class is called, but the openClicked method is never called.
class FileDialog(QtGui.QFileDialog): def __init__(self, *args): QtGui.QFileDialog.__init__(self, *args) self.setOption(self.DontUseNativeDialog, True) self.setFileMode(self.ExistingFiles) btns = self.findChildren(QtGui.QPushButton) self.openBtn = [x for x in btns if 'open' in str(x.text()).lower()][0] self.openBtn.clicked.disconnect() self.openBtn.clicked.connect(self.openClicked) self.tree = self.findChild(QtGui.QTreeView) def openClicked(self): inds = self.tree.selectionModel().selectedIndexes() files = [] for i in inds: if i.column() == 0: files.append(os.path.join(str(self.directory().absolutePath()),str(i.data().toString()))) self.selectedFiles = files self.hide() def filesSelected(self): return self.selectedFiles
Is this the correct call to FileDialog?
mydialog = FileDialog() filelist = mydialog.getExistingDirectory(self, "Select Stuff", "", QtGui.QFileDialog.DontConfirmOverwrite)
source share