2015-01-17 4 views
1

Я хотел бы использовать параметры в статическом методе QFileDialog.getOpenFileName.Как использовать параметры в QFileDialog.getOpenFileName?

Например, я хотел бы задать два варианта: QFileDialog.ExistingFile и QFileDialog.Detail.

Я уже прочитал этот текст: http://pyside.github.io/docs/pyside/PySide/QtGui/QFileDialog.html?highlight=getopenfilename#PySide.QtGui.PySide.QtGui.QFileDialog.getOpenFileName , но я не понимаю, как я могу использовать PySide.QtGui.QFileDialog.Options?

dir = self.sourceDir 
filters = "Text files (*.txt);;Images (*.png *.xpm *.jpg)" 
selected_filter = "Images (*.png *.xpm *.jpg)" 
options = "" # ??? 
fileObj = QFileDialog.getOpenFileName(self, " File dialog ", dir, filters, selected_filter, options) 

Если я использую

options = QFileDialog.DirectoryOnly 
    options |= QFileDialog.List 

он не работает.

Благодарим за помощь!

(Windows 7 64 Bit, PyCharm 3.4.1 Pro, Python 3.4.0, PySide 1.2.2)

enter image description here

+0

См. Http://qt-project.org/doc/qt-4.8/qfiledialog.html#Option-enum для действительных параметров (для перевода с C++ на Python заменить '::' на '.') –

+0

@three_pineapples Спасибо за ваш ответ! Я пытаюсь использовать вашу рекомендацию, но она не работает (например: options = QFileDialog.List). – Igor

+0

Это потому, что 'QFileDialog.List' не является частью перечисления' QFileDialog.options'. Вы можете использовать только вещи в перечислении 'QFileDialog.options' (снова прочитайте ссылку) –

ответ

1

Вы не можете это сделать, если вы используете статические функции с носителем файла -dialog.

Собственные файлы-диалоги не имеют того же API, что и диалоговое окно Qt-файла, поэтому вы можете устанавливать только те свойства, которые доступны через аргументы статической функции, что означает заголовок, заголовок, рабочий каталог, фильтры , и options.

Статические функции более или менее соответствуют различным file modes:

AnyFile = getSaveFileName 
ExistingFile = getOpenFileName 
Directory = getExistingDirectory 
ExistingFiles = getOpenFileNames 

При использовании статических функций, опция ShowDirsOnly будет работать только с getExistingDirectory. Но в Windows это откроет собственное диалоговое окно «Обзор папки» (если вы не установите опцию DontUseNativeDialog), и поэтому опция ShowDirsOnly будет избыточной.

В настоящее время нет способа установить ViewMode для родного диалога при использовании статических функций, а также для всех других API, которые относятся к QFileDialog.

Короткий длинный рассказ: если вы хотите больше контролировать файл-диалог, используйте встроенный Qt-one - вот для чего он предназначен.

+0

Большое спасибо !!! – Igor

Смежные вопросы