介绍
字体是一种对象,它决定了文本的外观,主要是在将文本绘制到窗口或设备上下文时。一种字体由以下参数决定(当然,并非所有参数都必须指定):
| 磅值 | 这是表示文本大小的标准方式。 |
|---|---|
| 字体系列 | 支持的字体系列有:wx.DEFAULT、wx.DECORATIVE、wx.ROMAN、wx.SCRIPT、wx.SWISS、wx.MODERN。wx.MODERN是一种等宽字体;其他的可以是等宽字体,也可以是可变宽度字体。 |
| 样式 | 其值可以是wx.NORMAL、wx.SLANT或wx.ITALIC。 |
| 字重 | 其值可以是wx.NORMAL、wx.LIGHT或wx.BOLD。 |
| 下划线 | 该值可以是True或False。 |
| 字体系列名称 | 一个可选的字符串,用于指定要使用的实际字体类型。如果为None,将根据字体系列选择默认的字体类型。 |
| 编码 | 字体编码(有关更多详细信息,请参阅 wx.FONTENCODING_XXX常量以及“字体编码”部分) |
指定一个字体系列,而不是特定的字体名称,可确保在不同平台间具有一定程度的可移植性,因为系统会为给定的字体系列选择合适的字体。然而,这并不能精确地选择某一种字体,因为一般来说,上述参数并不足以识别所有可用的字体。而在这种情况下,使用原生字体描述可能会有所帮助,具体内容见下文。
在Windows系统下,字体系列名称可以是用户系统上已安装的字体之一。由于不同系统所安装的字体各不相同,因此要么选择标准的Windows字体,要么在允许用户指定字体系列名称的情况下,将该字体系列名称与任何可能传输到不同Windows计算机或其他平台的文件一同保存。
注意:目前,如果映射模式不是MM_TEXT模式,那么在这两个平台上字体的外观会存在差异。在X系统下,字体大小始终以磅为单位进行指定。在微软Windows系统下,文本的单位也是磅,但文本会根据当前的映射模式进行缩放。不过,在这两种环境下,对设备上下文进行用户缩放操作时也会使字体缩放。
原生字体信息
选择字体的另一种方式是使用原生字体描述。如果允许用户通过wx.FontDialog选择字体,那么这是唯一可行的解决方案,因为仅用字体系列名称无法描述所选字体。所以,如果只是永久性地保存字体系列名称,用户之后在程序中几乎肯定会看到不同的字体。
相反,你应该存储由wx.Font.GetNativeFontInfoDesc返回的值,然后将其传递给wx.Font.SetNativeFontInfo,以便精确地重新创建出完全相同的字体。
注意:请注意,此字符串的内容取决于平台,且不应将其用于任何其他目的(尤其是,它并非用于展示给用户)。另外还请注意,尽管目前原生字体信息仅在Windows和Unix(GTK+和Motif)端口中实现,但所有这些方法对所有端口均可用,并且在以后这些方法实现时,应该使用它们来确保你的程序能正确运行。