Tkinter教程之Font篇

这篇Tkinter教程详细介绍了如何在Python GUI中设置和使用字体,包括改变组件字体、使用系统字体、创建字体属性、获取字体属性值以及使用系统指定和X Font Descriptor。
'''Tkinter教程之Font篇'''
# Tkinter中其它常用的一些功能
'''1.字体使用'''
# -*- coding: cp936 -*-
#
 改变组件的显示字体
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: cp936 -*-
#
 Font来创建字体
from Tkinter import *
# 引入字体模块
import 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: cp936 -*-
#
 使用系统已有的字体显示
from Tkinter import *
import 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: cp936 -*-
#
 测试measure和metrics属性
from Tkinter import *
import 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: cp936 -*-
#
 使用系统字体:以下测试是Windows上的系统指定字体
from Tkinter import *
import 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: cp936 -*-
#
 使用X Font Descriptor
from Tkinter import *
import 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测试。
 
好的,下面是一个简单的 Python tkinter 教程,希望对你有所帮助。 ## 简介 Tkinter 是 Python 的标准 GUI 库之一,使用它可以创建窗口、按钮、文本框、标签等各种 GUI 组件,是 Python 用于图形界面开发的主要工具之一。 ## 安装 Tkinter 是 Python 的标准库,通常情况下无需安装,只需要安装 Python 即可。如果你使用的是 Python 2.x 版本,则需要使用 Tkinter(注意大小写);如果你使用的是 Python 3.x 版本,则需要使用 tkinter(小写)。 ## 示例 下面是一个简单的 Python tkinter 示例,主要包括创建窗口、添加标签和按钮等操作。 ```python import tkinter as tk # 创建窗口 window = tk.Tk() window.title('Hello, World!') window.geometry('300x200') # 添加标签 label = tk.Label(window, text='Hello, World!', font=('Arial', 16)) label.pack() # 添加按钮 button = tk.Button(window, text='Click me!', command=window.quit) button.pack() # 运行窗口 window.mainloop() ``` 上述代码中,我们首先导入了 tkinter 库,并创建了一个名为 window 的窗口,设置了窗口标题和大小。然后,我们使用 tkinter.Label 类创建了一个名为 label 的标签,并将其添加到窗口中。接着,我们使用 tkinter.Button 类创建了一个名为 button 的按钮,并将其添加到窗口中。最后,我们使用 window.mainloop() 运行了窗口。 ## 组件 下面是一些常用的 tkinter 组件及其用法。 ### 标签 标签用于显示文本或图像,通常用来提供说明或提示信息。 ```python label = tk.Label(window, text='Hello, World!', font=('Arial', 16)) ``` 上述代码中,我们使用 tkinter.Label 类创建了一个名为 label 的标签,并设置了标签的文本和字体大小。 ### 按钮 按钮用于触发事件或执行操作,通常用来提交表单或执行计算等操作。 ```python button = tk.Button(window, text='Click me!', command=window.quit) ``` 上述代码中,我们使用 tkinter.Button 类创建了一个名为 button 的按钮,并设置了按钮的文本和点击事件(退出窗口)。 ### 文本框 文本框用于输入或编辑文本,通常用来接收用户输入或显示大段文本。 ```python text_box = tk.Text(window, height=5, width=30) ``` 上述代码中,我们使用 tkinter.Text 类创建了一个名为 text_box 的文本框,并设置了文本框的高度和宽度。 ### 输入框 输入框用于输入单行文本,通常用来接收用户输入或搜索关键词。 ```python input_box = tk.Entry(window, width=30) ``` 上述代码中,我们使用 tkinter.Entry 类创建了一个名为 input_box 的输入框,并设置了输入框的宽度。 ## 布局 在 tkinter 中,我们可以使用 pack、grid 和 place 等布局管理器来控制组件的位置和大小。 ### pack 布局 pack 布局是最简单的布局管理器,它将组件按照添加的顺序从上到下依次排列。 ```python label.pack() button.pack() ``` 上述代码中,我们使用 pack() 方法将标签和按钮依次排列。 ### grid 布局 grid 布局是一种基于网格的布局管理器,它将组件按照行和列的方式排列。 ```python label.grid(row=0, column=0) button.grid(row=1, column=0) ``` 上述代码中,我们使用 grid() 方法将标签放置在第一行第一列,将按钮放置在第二行第一列。 ### place 布局 place 布局是一种基于绝对坐标的布局管理器,它将组件放置在指定的位置上。 ```python label.place(x=50, y=50) button.place(x=100, y=100) ``` 上述代码中,我们使用 place() 方法将标签放置在 (50, 50) 的位置上,将按钮放置在 (100, 100) 的位置上。 ## 总结 以上就是一个简单的 Python tkinter 教程,涵盖了创建窗口、添加标签和按钮、使用布局管理器等基本操作。希望这教程能够帮助你入门 tkinter,更多详细内容可以查看 tkinter 的官方文档。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值