通用对话框类和函数封装了常见的对话框需求。它们都是“模态”的,会获取控制权,直到用户关闭对话框为止,这样能让它们在应用程序中便于使用。
对话框既有依赖于平台的实现方式,也有不依赖于平台的实现方式,这样一来,如果底层窗口系统不提供所需的功能,通用的类和函数就可以取而代之。例如,在微软Windows系统下,wx.ColourDialog使用标准的颜色选择器。对于其他平台,还有一个等效的wx.GenericColourDialog,并且有一个宏将wx.ColourDialog定义为在非微软Windows平台上与wx.GenericColourDialog相同。不过,在微软Windows系统下,出于测试或其他目的,也可以使用通用对话框。
ColourDialog概述
wx.ColourDialog向用户展示一个颜色选择器,并返回颜色信息。
微软Windows颜色选择器
在Windows系统下,会使用原生的颜色选择器通用对话框。该对话框展示时带有三个主要区域:在左上方,会显示一个包含48种常用颜色的调色板。在这个调色板下方,有一个包含16种“自定义颜色”的调色板,如果应用程序有需要,可以对这些自定义颜色进行设置。此外,用户可以展开该对话框,以显示右侧面板,其中包含用于选择精确颜色的控件,并且可以将所选颜色添加到自定义颜色调色板中。
通用颜色选择器
在非微软Windows平台下,颜色选择器模拟了微软Windows颜色选择器的大部分功能。会显示两个调色板,分别包含48种标准颜色和16种自定义颜色,右侧区域有三个滑块,供用户从红色、绿色和蓝色分量中选择颜色。这种颜色可以添加到自定义颜色调色板中,并且会替换当前选中的自定义颜色,如果没有选中任何自定义颜色,则会替换调色板中的第一种颜色。在通用颜色选择器中,RGB颜色滑块是必需的。通用颜色选择器在微软Windows平台下同样可用,其名称为wx.GenericColourDialog。
案例
以下是使用wx.ColourDialog的一个示例,该示例设置了wx.ColourData对象的各种参数,其中包括自定义颜色的灰度值。如果用户没有取消该对话框,应用程序将获取所选颜色,并使用该颜色来设置窗口的背景:
data = wx.ColourData()
data.SetChooseFull(True)
for i in xrange(16):
colour = wx.Colour(i*16, i*16, i*16)
data.SetCustomColour(i, colour)
dialog = wx.ColourDialog(self, data)
if dialog.ShowModal() == wx.ID_OK:
retData = dialog.GetColourData()
col = retData.GetColour()
brush = wx.Brush(col, wx.SOLID)
myWindow.SetBackground(brush)
myWindow.Clear()
myWindow.Refresh()
FontDialog概述
wx.FontDialog向用户展示一个字体选择器,并返回字体和颜色信息。
微软Windows字体选择器
在Windows系统下,会使用原生的字体选择器通用对话框。该对话框展示时带有用于设置字体名称、磅值大小、样式、字体粗细、下划线、删除线以及文本前景色的控件。对话框的白色区域会显示所选字体的示例。请注意,在将完整的微软Windows字体转换为wxPython字体规范的过程中,删除线会被忽略,并且会从实际的字体名称(如Arial或Courier)推断出字体系列(如Swiss或Modern)。
通用字体选择器
在非微软Windows平台下,字体选择器更为简单。它提供了用于设置字体系列、磅值大小、样式、字体粗细、下划线以及文本前景色的控件,并且会在白色背景上显示字体示例。通用字体选择器在微软Windows平台下同样可用,其名称为wx.GenericFontDialog。
案例
以下是使用wx.FontDialog的一个示例。该应用程序使用返回的字体和颜色在画布上绘制文本:
data = wx.FontData()
data.SetInitialFont(canvasFont)
data.SetColour(canvasTextColour)
dialog = wx.FontDialog(self, data)
if dialog.ShowModal() == wx.ID_OK:
retData = dialog.GetFontData()
canvasFont = retData.GetChosenFont()
canvasTextColour = retData.GetColour()
myWindow.Refresh()
PrintDialog概述
这个类表示打印和打印设置通用对话框。你可以从成功关闭的打印对话框中获取一个wx.PrinterDC设备上下文。
另请参阅“打印窗口概述”以获取一个示例。
FileDialog概述
弹出一个文件选择器框。在Windows系统以及GTK 2.4及更高版本中,这是通用的文件选择器对话框。在X窗口系统中,这是一个功能稍少的文件选择器框。路径和文件名是完整文件路径名中的不同组成部分。
如果路径为"",则将使用当前目录。如果文件名是"",则不会提供默认文件名。通配符决定了在文件选择器中显示哪些文件,而文件扩展名则为所需的文件名提供一种类型扩展名。标志可以是wx.FD_OPEN、wx.FD_SAVE、wx.FD_OVERWRITE_PROMPT、wx.FD_HIDE_READONLY、wx.FD_FILE_MUST_EXIST、wx.FD_MULTIPLE、wx.FD_CHANGE_DIR中的一个或多个的组合,或者为0。
X窗口系统版本和Windows版本都实现了通配符筛选功能。在文件名文本框中输入包含通配符(*、?)的文件名,然后点击“确定”按钮,将只会显示与该模式匹配的文件。在X窗口系统版本中,如果不提供默认名称,通配符筛选条件将被插入到文件名文本框中;如果提供了默认名称,则该筛选条件将被忽略。
通配符可以是对多种类型文件的一种指定,并且每种文件都带有相应的描述,例如:
wildcard = "BMP files (*.bmp)|*.bmp|GIF files (*.gif)|*.gif"
DirDialog概述
此对话框显示一个目录选择器对话框,允许用户选择单个目录。
TextEntryDialog概述
这是一个带有文本输入字段的对话框。用户输入的值可通过wx.TextEntryDialog.GetValue()来获取。
PasswordEntryDialog概述
这是一个带有密码输入字段的对话框。用户输入的值可通过wx.TextEntryDialog.GetValue()来获取。
MessageDialog概述
此对话框会显示一条消息,还会显示一些按钮,这些按钮可以是“确定”、“取消”、“是”和“否”。在Windows系统下,可以显示一个可选的图标,比如感叹号或问号。
wx.MessageDialog.ShowModal()的返回值表明了用户按下了哪个按钮。
SingleChoiceDialog概述
此对话框会显示一个选项列表,以及“确定”按钮,并且(可选地)还有“取消”按钮。用户可以从这些选项中选择一项。可以从该对话框中获取所选内容,获取的形式可以是索引、字符串或客户端数据。
MultiChoiceDialog概述
此对话框会显示一个选项列表,以及“确定”按钮,并且(可选)还有“取消”按钮。用户可以从中选择一个或多个选项。