Даже если вы выбрали файл, событие l oop все равно будет продолжать выполняться, возможное решение - вызвать QXApplication.quit () с QTimer, но все еще существует проблема: этот метод сделает exec_ ( ) метод return 0, который принимается sys.exit (), и, следовательно, приложение будет закрыто. Но все вышеперечисленное не является необходимым, поскольку, если вы просто хотите получить путь к файлу, вам не нужно использовать QWidget, вы можете использовать следующее:
import sys
from PySide2.QtWidgets import QApplication, QFileDialog
def get_filename():
app = QApplication([])
options = QFileDialog.Options()
options |= QFileDialog.DontUseNativeDialog
fileName, _ = QFileDialog.getOpenFileName(
None,
"QFileDialog.getOpenFileName()",
"",
"All Files (*);;Python Files (*.py)",
options=options,
)
return fileName
if __name__ == "__main__":
filename = get_filename()
if filename:
print(filename)