2

我正在创建一个文件对话框,允许用户在我的应用程序中编辑文件后保存文件。我想在对话框中添加一个复选框,以便用户可以选择保存文件的格式。我想我需要创建一些继承自 FileDialog 的新类,并将一个复选框插入到由文件对话框创建的框架中,但我真的不知道该怎么做。谁能帮我吗?

(我还想创建一个类似的文件对话框来打开文件,但我认为这只是意味着用 OPEN 样式替换 SAVE 样式。)

4

4 回答 4

2

在 wxWidgets 2.9 中,可以使用 wxFileDialog::SetExtraControlCreator() 将自定义控件添加到文件对话框中。它适用于 GTK、MSW 和通用对话框。

或者,您可以使用 wxFileCtrl 类。它仅在 wxGTK 中具有本机实现。

不过,我不知道 Python 包装器是否提供这些功能。

于 2011-05-09T22:37:33.607 回答
2

我不同意您应该仅使用标准对话框的设计方式的观点。

我采取另一种观点,宁愿考虑按照子类化的方式使用子类化。对我来说,它是为一个类添加额外的功能/专业化。

所以它不会改变标准对话框的行为。它正在基于标准对话框创建一个新对话框,并带有一些附加功能。

就我而言,我想向 中添加两个按钮以wx.MultiChoiceDialog提供 aSelect All和/或Unselect All功能。

于 2012-09-14T16:26:40.560 回答
1

我认为你在这方面走错路了。一般来说,额外的小部件不会被添加到标准对话框中(如果可以的话,它们不会是标准的)。

如果您希望添加wx.CheckBox's 或类似的,您将不得不通过子类化 wx.Dialog 创建自己的自定义对话框。

如果您需要做的只是为用户提供一种按要打开的文件类型进行过滤或选择将文件保存为哪种文件类型的方法,那么 wx.FileDialog 已经提供了这个功能。

通过在创建 fileDialog 的实例时使用通配符参数,您可以提供一组文件类型供用户选择。

这是wxPython Demo的一个片段和一个用于说明的屏幕截图。wxPython Demo是一个非常有用的应用程序,它提供了 wxPython 中包含的大多数小部件的演示,如果您还没有它,值得下载。

wildcard = "Python source (*.py)|*.py|"     \
           "Compiled Python (*.pyc)|*.pyc|" \
           "SPAM files (*.spam)|*.spam|"    \
           "Egg file (*.egg)|*.egg|"        \
           "All files (*.*)|*.*"

替代文字

wx.FileDialog 文档:

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

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

于 2010-11-04T12:25:18.583 回答
1

我同意伏打。如果您需要自定义(非原生)对话框,请使用 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/

于 2010-11-04T21:22:11.153 回答