def get_dirnames(app=None): from PySide2.QtCore import Qt, QCoreApplication from PySide2.QtWidgets import QApplication, QFileDialog, QTreeView, QListView, QAbstractItemView from pathlib import Path if not app: app = QApplication(sys.argv) # file_dialog = QFileDialog() # file_dialog.setWindowFlags(Qt.WindowStaysOnTopHint) # file_location = file_dialog.getOpenFileNames() file_dialog = QFileDialog() file_dialog.setFileMode(QFileDialog.DirectoryOnly) file_dialog.setOption(QFileDialog.DontUseNativeDialog, True) file_view = file_dialog.findChild(QListView, 'listView') # to make it possible to select multiple directories: if file_view: file_view.setSelectionMode(QAbstractItemView.MultiSelection) f_tree_view = file_dialog.findChild(QTreeView) if f_tree_view: f_tree_view.setSelectionMode(QAbstractItemView.MultiSelection) if file_dialog.exec(): paths = file_dialog.selectedFiles() QCoreApplication.processEvents() for path in paths: yield Path(path)
def getMultipleSelected(self, init_text): file_dialog = QFileDialog() file_dialog.setFileMode(QFileDialog.DirectoryOnly) file_dialog.setOption(QFileDialog.DontUseNativeDialog, True) file_view = file_dialog.findChild(QListView, 'listView') # to make it possible to select multiple directories: if file_view: file_view.setSelectionMode(QAbstractItemView.ExtendedSelection) f_tree_view = file_dialog.findChild(QTreeView) if f_tree_view: f_tree_view.setSelectionMode(QAbstractItemView.ExtendedSelection) if file_dialog.exec(): self.source = file_dialog.selectedFiles() eval("self." + init_text + "FilePath").setText(",".join( self.source)) print(self.source)