Я работаю над проектом, который я разрабатываю с Python и PyQT4. Я наткнулся на несколько странное поведение QFileDialog, которое не происходит при запуске проекта в моей IDE (Eclipse).
Проблема в том, что QFileDialog в режиме ExistingFiles не возвращает список выбранных файлов, когда один из путей к файлам содержит умлаут на немецком языке (ä, ü, ö и т. Д.)
QFileDialog не предлагает опций или параметров, чтобы сделать его разумным в отношении этого сценария.
У кого-нибудь есть идеи, как решить эту проблему?
edit: мой сценарий развертывания, в котором происходит ошибка, выглядит следующим образом. я строю исполняемый файл с Py2Exe, а затем сделать его распространяемым с помощью Inno Setup. не знаю, могло ли это породить проблему, но чем больше информации, тем лучше я думаю.
edit2:
У меня нет точного кода, доступного до пятницы, но у нас есть оператор if, ожидающий завершения диалога. как это:
fileDialog = QFileDialog(...)
if fileDialog.exec_():
# get the choosen files
fileNames = fileDialog.getSelectedFiles()
# test if if-statement is entered
print fileNames
# convert from QStringList to normal list of Strings
fileNames = list(map(lambda x: str(x), fileNames))
# to suffice as an example print each
for fileName in fileNames:
print fileName
Первая команда печати выполняется, вторая - нет. Как будто что-то промежуточное не хочет завершаться, и Python как-то спокойно обрабатывает исключение. Однако QFileDialog закрывается, как предполагается, после выбора файлов и нажатия «Открыть» или двойного щелчка по файлу.