文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

tkinter -- Font

2023-01-30 22:04

关注

Tkinter 中其它常用的一些功能

字体使用

改变组件的显示字体

代码:

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

root.mainloop()

结果:

blob.png

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



使用系统已有的字体

Font 来创建字体

代码:

import tkinter as tk
# 引入字体模块

import tkinter.font
root = tk.Tk()


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

结果:

blob.png

使用tkinter.font.Font 来创建字体



字体创建属性优先级

使用系统已有的字体显示

代码:

import tkinter as tk
# 引入字体模块
import tkinter.font
root = tk.Tk()


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

结果:

blob.png

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



得到字体的属性值

测试 measure 和 metrics 属性

代码:

import tkinter as tk
# 引入字体模块
import tkinter.font
root = tk.Tk()


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

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

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

# 打印两个字体的属性
for i in ('ascent', 'descent', 'linespace', 'fixed'):
    print(ft1.metrics(i))
    print(ft2.metrics(i))
root.mainloop()

结果:

blob.png

使用这两个方法得到已创建字体的相关属性值



使用 X Font Descriptor

代码:

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

结果:

blob.png

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯