5.4. 字体样式
根据你的平台的支持情况,有三种方式可以指定样式类型。
- 通过一个元组来描述字体样式,第一参数是字体类型,第二个是字体大小(正正值表示磅,负值表示像素),第三个参数是可选的,它可以用 一个或多个字符串
bold
(粗体),italic(斜体)
,underline(下划线)
和
overstrike(改写)来修饰样式。比如:
('Helvetica', '16')
普通16磅Helvetica字体;
('Times', '24', 'bold italic')
24磅Times字体加粗斜体;('Times', -20, 'bold')20像素
Times字体加粗。 你可以通过导入
tkFont
模块并使用Font
类来新创建一个“字体类”。import tkFont font = tkFont.Font(
option
, ...)选项(options)包括:
family
字体的名称字符串 size
字体的高度,用整数磅值来表示。想要用字体的n个像素高来表示,使用-n。 weight
'bold'为加粗,
'normal'
为普通slant
'italic'为斜体,
'roman'为非倾斜
underline
1为下划线,0为普通 overstrike
1为更正线,0为普通 举个例子,36磅粗体Helvetica字体
helv36 = tkFont.Font(family='Helvetica', size=36, weight='bold')
- 若你运行在X Window系统中,你可以使用任何X font名称。比如字体名为
'-*-lucidatypewriter-medium-r-*-*-*-140-*-*-*-*-*-*',它是一个宽度修正可以在屏幕上显示的字体。使用
xfontsel工具可以帮助你挑选心怡的字体。
通过以下函数可以列出你平台上可用所有字体:
tkFont.families()
返回值的类型为字符串列表。注:必须在创建root window后再调用这个函数。
-
t如果没有使用参数,那么就会返回一个字体实际属性的字典,实际属性可能会不同于你请求的某一个属性。如果想获得指定名称的属性值,那么就把名字当做参数吧。
-
返回给定
option(选项)
的值。
-
通过这个方法可以改变一个或多个字体类型的选项。假如你创建了一个叫
titleFont的
Font对象。执行
titleFont.configure(family='times', size=18)将会把字体包括使用了该字体类型的组件一起改变成18磅
Time字体。 -
返回一个
Font对象的拷贝。(译者注:使用对象拷贝是一种非常常见的操作,若只通过=赋值的方式来把一个对象传递,其实只是传递了一个指针而已,造成的效果就是一旦类的内容发生变化,那个被赋值的变量内容也会发生改变)
-
给这个方法输入一个字符串,哪个它就会返回使用此字体类型所占的像素宽度。警告:一些斜体字符可能会从这个区域大小中溢出来。
-
若你调用这个方法时没有参数,这个方法会返回一个所有font metrics(字体度量)的字典。你可以使用一些任何一个度量名称作为参数。度量包括:
ascent
基准线到所有字符最高点之间的像素数。 descent
从基准线到所有字符中最低点之间的像素数 fixed
0表示可变宽度字体,1表示等宽字体 linespace
总高度像素值,这个方法可以指导我们把指定字体样式设置为立体的。
.actual(option
=None)
.cget(option
)
.configure(option
, ...)
.copy()
.measure(text
)
.metrics(option
)