用Tkinter打造GUI开发工具(7)字体类型

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()

在这里插入图片描述

发布了56 篇原创文章 · 获赞 67 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/hepu8/article/details/88833912