在wxPython中,字体选择对话框与文件对话框是不同的,因为它使用了一个单独的帮助类来管理它所呈现的信息。图9.8显示了微软Windows版的字体对话框。
例9.8 显示了产生图9.8的代码,并且与前面的对话框例子看起来也有些不同。
例9.8 字体对话框
import wx
if __name__ == "__main__":
app = wx.PySimpleApp()
dialog = wx.FontDialog(None, wx.FontData())
if dialog.ShowModal() == wx.ID_OK:
data = dialog.GetFontData()
font = data.GetChosenFont()
colour = data.GetColour()
print 'You selected: "%s", %d points/n' % (
font.GetFaceName(), font.GetPointSize())
dialog.Destroy()
图9.8
wx.FontDialog 的构造函数比前面的那些简单的多:
wx.FontDialog(parent, data)
你不能为该对话框设置一个消息或标题,并且被通常作为样式标记传递的信息被包含在data参数中,该参数是类wx.FontData。wx.FontData类自己只有一个有用的方法:GetFontData(),该方法返回字体数据的实例。
wx.FontData的实例使你能够设置管理字体对话框显示的值,并且也能够容纳用户输入的信息。例如,在例9.8中的代码调用了wx.FontData实例的两个get*方法来确定所选字体的细节。wx.FontData的构造函数没有参数——所有的属性必须通过使用表9.4中的方法来设置。
表9.4 wx.FontData的方法
GetAllowSymbols()
SetAllowSymbols(allowSymbols):决定是否在对话框中仅显示符号字体(如dingbats)。参数是布尔值。只在Windows中有意义。该属性的初始值是True。
GetChosenFont()
SetChosenFont(font):以wx.Font对象的方式返回用户所选的字体。如果用户选择了取消,那么返回None。wx.Font类将在第12章作更详细的讨论。
GetColour()
SetColour(colour):返回在对话框的颜色选择部分所选的颜色。set*方法使你可以预先设定默认值。get*方法返回一个wx.Colour实例。set*方法中的colour只能是一个wx.Colour或一个颜色的字符串名。该属性的初始值是black。
GetEnableEffects()
EnableEffects(enable):在该对话框的Windows版本中,该属性控制是否显示字体的所选颜色、中间是否有直线通过、是否带下划线等特性。
GetInitialFont()
SetInitialFont(font):返回对话框初值的字体值(即当前所用的字体)。这个属性可以在对话框显示之前通过应用程序显式的来设置。它的初始值是None。
SetRange(min, max):设置字体尺寸(磅)的有效范围。仅用于微软的Windows系统。最初值是0~0,意味没有范围的限制。
GetShowHelp()
SetShowHelp():如果为True,那么该对话框的微软Windows版本将显示一个帮助按钮。初始值为False。
有一个使用字体对话框的便利的函数,它回避了wx.FontData类:
wx.GetFontFromUser(parent, fontInit)
fontInit参数是wx.Font的一个实例,它用作对话框的初始值。该函数的返回值是一个wx.Font实例。如用户通过OK关闭了对话框,则方法wx.Font.Ok()返回True,否则返回False。
例9.8 显示了产生图9.8的代码,并且与前面的对话框例子看起来也有些不同。
例9.8 字体对话框
import wx
if __name__ == "__main__":
app = wx.PySimpleApp()
dialog = wx.FontDialog(None, wx.FontData())
if dialog.ShowModal() == wx.ID_OK:
data = dialog.GetFontData()
font = data.GetChosenFont()
colour = data.GetColour()
print 'You selected: "%s", %d points/n' % (
font.GetFaceName(), font.GetPointSize())
dialog.Destroy()
图9.8
![](https://i-blog.csdnimg.cn/blog_migrate/1ff3e88c18e8932678637afb62bc32a6.png)
wx.FontDialog 的构造函数比前面的那些简单的多:
wx.FontDialog(parent, data)
你不能为该对话框设置一个消息或标题,并且被通常作为样式标记传递的信息被包含在data参数中,该参数是类wx.FontData。wx.FontData类自己只有一个有用的方法:GetFontData(),该方法返回字体数据的实例。
wx.FontData的实例使你能够设置管理字体对话框显示的值,并且也能够容纳用户输入的信息。例如,在例9.8中的代码调用了wx.FontData实例的两个get*方法来确定所选字体的细节。wx.FontData的构造函数没有参数——所有的属性必须通过使用表9.4中的方法来设置。
表9.4 wx.FontData的方法
GetAllowSymbols()
SetAllowSymbols(allowSymbols):决定是否在对话框中仅显示符号字体(如dingbats)。参数是布尔值。只在Windows中有意义。该属性的初始值是True。
GetChosenFont()
SetChosenFont(font):以wx.Font对象的方式返回用户所选的字体。如果用户选择了取消,那么返回None。wx.Font类将在第12章作更详细的讨论。
GetColour()
SetColour(colour):返回在对话框的颜色选择部分所选的颜色。set*方法使你可以预先设定默认值。get*方法返回一个wx.Colour实例。set*方法中的colour只能是一个wx.Colour或一个颜色的字符串名。该属性的初始值是black。
GetEnableEffects()
EnableEffects(enable):在该对话框的Windows版本中,该属性控制是否显示字体的所选颜色、中间是否有直线通过、是否带下划线等特性。
GetInitialFont()
SetInitialFont(font):返回对话框初值的字体值(即当前所用的字体)。这个属性可以在对话框显示之前通过应用程序显式的来设置。它的初始值是None。
SetRange(min, max):设置字体尺寸(磅)的有效范围。仅用于微软的Windows系统。最初值是0~0,意味没有范围的限制。
GetShowHelp()
SetShowHelp():如果为True,那么该对话框的微软Windows版本将显示一个帮助按钮。初始值为False。
有一个使用字体对话框的便利的函数,它回避了wx.FontData类:
wx.GetFontFromUser(parent, fontInit)
fontInit参数是wx.Font的一个实例,它用作对话框的初始值。该函数的返回值是一个wx.Font实例。如用户通过OK关闭了对话框,则方法wx.Font.Ok()返回True,否则返回False。