0
이 질문은 이미 here이지만이 대답은 구식이되거나 더 이상 Python 2.7에서 작동하지 않습니다.QFileDialog (Revisited)에서 여러 개의 파일 및 폴더 선택
이 코드를 사용하여 QFileDialog의 하위 클래스를 만들면 FileDialog 클래스 init가 호출되지만 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)
천재. 고마워, 우리 모두는이 훌륭한 프로그래밍 언어에 대한 우리의 이해 수준이 서로 다르다. :) – panofish
나는 RuntimeError를 받는다 : Window 유형의 수퍼 클래스 __init __()가 결코 호출되지 않았다. –
@cyclops. 감사합니다 - 지금 고쳐야합니다. – ekhumoro