Этот вопрос уже существует here, но ответ кажется устаревшим или больше не работает с Python 2.7.Несколько файлов и выбор папок в QFileDialog (Revisited)
Когда я использую этот код для подкласса моего QFileDialog, вызывается класс initDialog, но метод openClicked никогда не вызывается.
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
Правильный ли звонок для FileDialog?
mydialog = FileDialog()
filelist = mydialog.getExistingDirectory(self, "Select Stuff", "", QtGui.QFileDialog.DontConfirmOverwrite)
Genius. Спасибо, мы все на разных уровнях нашего понимания этого замечательного языка программирования .. некоторые более или менее, чем другие. :) – panofish
Я получаю: RuntimeError: суперкласс __init __() типа Window никогда не назывался –
@cyclops. Спасибо - теперь нужно исправлять. – ekhumoro