Как добавить виджеты в диалоговое окно файла в wxpython? - PullRequest
2 голосов
/ 04 ноября 2010

Я создаю диалоговое окно файла, которое позволяет пользователю сохранить файл после редактирования в моем приложении. Я хочу добавить флажок в диалоговое окно, чтобы пользователь мог выбрать, в каком формате сохранен файл. Я думаю, мне нужно создать новый класс, который наследует от FileDialog и вставляет флажок в кадр, созданный filedialog но я не знаю, как это сделать. Кто-нибудь может мне помочь?

(Я также хочу создать аналогичный файловый диалог для открытия файла, но я предполагаю, что это будет означать просто замену стиля SAVE на стиль OPEN.)

Ответы [ 4 ]

2 голосов
/ 10 мая 2011

В wxWidgets 2.9 пользовательские элементы управления могут быть добавлены в диалоговые окна файлов с помощью wxFileDialog :: SetExtraControlCreator (). Он реализован для GTK, MSW и общих диалогов.

В качестве альтернативы вы можете использовать класс wxFileCtrl. Он имеет собственную реализацию только в wxGTK.

Однако я не знаю, доступны ли эти функции в оболочках Python.

1 голос
/ 14 сентября 2012

Я должен не согласиться с мнением о том, что вы должны использовать стандартные диалоги только в том виде, в каком они были разработаны.

Я беру другой взгляд и предпочел бы использовать подклассы так, как это было предусмотрено.И мне, это добавить дополнительную функциональность / специализацию к классу.

Так что это не меняет поведение стандартного диалога.Это создание нового диалога на основе стандартного диалога с небольшой дополнительной функциональностью.

В моем случае, я хочу добавить две кнопки к wx.MultiChoiceDialog, чтобы обеспечить Select All и / или Unselect Allфункции.

1 голос
/ 05 ноября 2010

Я согласен с вольтованием. Если вам нужен пользовательский (НЕ родной) диалог, подкласс wx.Dialog. В противном случае используйте стандартные диалоги так, как они должны использоваться. Смотри также:

http://www.blog.pythonlibrary.org/2010/06/26/the-dialogs-of-wxpython-part-1-of-2/

http://www.blog.pythonlibrary.org/2010/07/10/the-dialogs-of-wxpython-part-2-of-2/

1 голос
/ 04 ноября 2010

Я думаю, вы идете по этому поводу неправильно.В общем случае дополнительные виджеты не должны быть добавлены в стандартные диалоги (если бы вы могли, они бы не были стандартными).

Если вы хотите добавить wx.CheckBox или что-то подобное, вам нужно будет создать свой собственный диалог путем создания подкласса wx.Dialog.

Если все, что вам нужно сделать, этопредоставить пользователю средства фильтрации по типам файлов, которые необходимо открыть, или выбрать тип файла, в котором будет сохраняться файл, тогда эта функциональность полностью готова, предоставляемая wx.FileDialog.

Используя параметр подстановочного знака при создании экземпляра вашего fileDialog, вы можете указать группу типов файлов, которые может выбрать пользователь.

Вот фрагмент из демонстрации wxPython и скриншот для иллюстрации. wxPython Demo - очень полезное приложение, которое предоставляет демонстрации большинства виджетов, включенных в wxPython, и стоит их скачать, если у вас его еще нет.1018 *alt text

wx.FileDialog Документация:

http://wxpython.org/docs/api/wx.FileDialog-class.html

http://xoomer.virgilio.it/infinity77/wxPython/Widgets/wx.FileDialog.html

...