Tkinter字体类型根据Python使用的平台,可能会有三种方法来指定类型的风格。
1)作为一个元组的第一个元素是字体,紧随其后的是分大小,可选地紧随其后 字符串包含一个或多个风格修饰符粗体、斜体、下划线、和超调。
例如:(“Helvetica”, “16”)和(“Times”, “24”, “bolditalic”)。
2)可以导入字体对象创建一个tkFont模块和使用它的字体类构造函数。
import tkinter.font as tkFont #导入Tkinter字体模块
创建字体对象的语法格式如下。
font = tkFont.Font ( option, ... )
创建方法中的 option 选项参数见下表。
参数 | 说明 |
---|---|
family | 字体名称为字符串。 |
size | 字体高度为整数点。获得字体n像素高,使用 - n。 |
weight | 字体宽度。“bold” 表示加粗, "normal"表示正常字体宽度。 |
slant | 字体倾斜。“italic” 表示斜体, "roman"表示不斜的。 |
underline | 下划线。1表示下划线文本,0表示正常。 |
overstrike | 划线字体。1表示划线文本,0表示正常。 |
tkFont除了选项参数外,还有一些方法。
显示所有可用字体,可以使用如下方法。
tkFont.families()
对于创建的字体对象font,还有如下方法可以使用。
1)返回字体对象全部或一个属性值。
font.actual ( option=None )
如果你不传递任何参数,返回字体对象实际属性,字典数据。
2)返回给定的字体对象属性值。
font.cget ( option )
3)改变字体对象一个或多个属性值。
font.configure ( option, ... )
使用这种方法来改变一个或多个选项字体。使用这个字体对象的小部件字体也会随之改变。
4)返回一个字体对象的副本。
font.copy()
5)返回使用这个字体对象的字符串像素宽度。
font.measure ( text )
通过这个方法将返回字符串的像素宽度。注意:有些倾斜字符可能延长到这个像素宽度区域以外。
6)回返字体度量。
font.metrics ( option )
如果你不带参数调用这个方法,它返回一个字典的所有字体度量。可选option参数含义见下表。
参数 | 说明 |
---|---|
ascent | 高度的像素数量之间的基线和上升最高的顶部。 |
descent | 高度的像素数量之间的基线和最低的人或物的底部。 |
fixed | 此值对于变幅字体为0,对于单幅字体为1。 |
linespace | 高度的像素数量。 |
下面给出一个Tkinter字体对象示例程序。
# -*- coding: utf-8 -*-
import tkinter as tk #装载tkinter模块,用于Python3
import tkinter.font as tkFont #导入Tkinter字体模块
root=tk.Tk() #创建Tkinter主窗口
root.title("Tkinter字体演示")
helv36 = tkFont.Font ( family="Helvetica",size=36, weight="bold",slant= "italic" ,underline=1) #创建字体对象
w = tk.Label(root, text="Tkinter字体演示", font=helv36) #创建Labkel部件
w.pack() #放置部件
f = tkFont.Font(family="times", size=30, weight="normal",slant= "roman",overstrike=1 )
w = tk.Label(root, text="Hello, world", font=f)
w.pack()
w = tk.Button(root, text="Quit!", command=root.destroy)
w.pack()
fb = tkFont.Font(font=w["font"]).copy()
fb.config(weight="bold")
fb.config(size=20)
w.config(font=fb)
root.mainloop()