Tkinter教程之Font篇

'''Tkinter教程之Font篇'''
# Tkinter中其它常用的一些功能
'''1.字体使用'''
# -*- coding: utf-8 -*-
# 改变组件的显示字体
from tkinter import *

root = Tk()
# 创建一个Label
for ft in ('Arial', ('Courier New',), ('Comic Sans MS',), 'Fixdsys', ('MS Sans Serif',), ('MS Serif',), 'Symbol', 'System',
           ('Times New Roman',), 'Verdana'):
    Label(root, text='hello sticky', font=ft).grid()

root.mainloop()
# 在Windows上测试字体显示,注意字体中包含有空格的字体名称必须指定为tuple类型。

'''2.使用系统已有的字体'''
# -*- coding: utf-8 -*-
# Font来创建字体
from tkinter import *
# 引入字体模块
import tkinter.font as tkFont

root = Tk()
# 创建一个Label
# 指定字体名称、大小、样式
ft = tkFont.Font(family='Fixdsys', size=20, weight=tkFont.BOLD)
Label(root, text='hello sticky', font=ft).grid()

root.mainloop()
# 使用tkFont.Font来创建字体。

'''3.字体创建属性优先级'''
# -*- coding: utf-8 -*-
# 使用系统已有的字体显示
from tkinter import *
import tkinter.font as tkFont

root = Tk()
# 创建一个Label
# 指定字体名称、大小、样式
# 名称是系统可使用的字体
ft1 = tkFont.Font(family='Fixdsys', size=20, weight=tkFont.BOLD)
Label(root, text='hello sticky', font=ft1).grid()

ft2 = tkFont.Font(font=('Fixdsys', '10', tkFont.NORMAL), size=40)
Label(root, text='hello sticky', font=ft2).grid()

root.mainloop()
# 创建字体有font等其它属性,
# 如果font指定了,有几个参数将不再起作用,如:family,size,weight,slant,underline,overstrike
# 例子中演示的结果是ft2中字体大小为10,而不是40

'''4.得到字体的属性值'''
# -*- coding: utf-8 -*-
# 测试measure和metrics属性
from tkinter import *
import tkinter.font as tkFont

root = Tk()
# 创建一个Label
ft1 = tkFont.Font(family='Fixdsys', size=20, weight=tkFont.BOLD)
Label(root, text='hello font', font=ft1).grid()

ft2 = tkFont.Font(font=('Fixdsys', '10', tkFont.NORMAL), size=40)
Label(root, text='hello font', font=ft2).grid()

# 得到字体的宽度
print(ft1.measure('hello font'))
print(ft2.measure('hello font'))

# 打印两个字体的属性
for metric in ('ascent', 'descent', 'linespace', 'fixed'):
    print(ft1.metrics(metric))
    print(ft2.metrics(metric))
root.mainloop()
# 使用这两个方法得到已创建字体的相关属性值

'''5.使用系统指定的字体'''
# -*- coding: utf-8 -*-
# 使用系统字体:以下测试是Windows上的系统指定字体
from tkinter import *
import tkinter.font as tkFont

root = Tk()
for ft1 in ('ansi', 'ansifixed', 'device', 'oemfixed', 'system', 'systemfixed'):
    Label(root, text='hello font', font=ft1).grid()

root.mainloop()
# X Window上的系统指定字体:fixed,6x10等

'''6.使用X Font Descriptor'''
# -*- coding: utf-8 -*-
# 使用X Font Descriptor
from tkinter import *
import tkinter.font as tkFont

root = Tk()
for ft in ('Times', 'Helvetica', 'Courier', 'Symbol',):
    Label(root, text='hello font', font=('-*-%s-*-*-*--*-240-*') % (ft)).grid()

root.mainloop()
# X Font Descriptor格式:-*-family-weight-slant-*--*-size-*-*-*-*-charset
# 这个例子是在Windows下测试,没有在Linux测试。

  • 11
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值