如何更改 Tkinter 中的默认字体?
先决条件:Tkinter
Tkinter 为不同的事物提供了多种字体,例如标题、标题、文本、菜单等。但好处是我们可以使用tkinter.font模块覆盖这些字体。
Tkinter 提供的一些字体是:
- 默认字体
- TkMenu字体
- Tk固定字体
- TkSmallCaptionFont 等。
在本文中,我们将更改默认字体。为此,我们需要覆盖/更改TkDefaultFont 的配置。更改/覆盖默认字体非常简单,可以通过以下方式完成:
- 使用font.nametofont方法创建字体对象。
- 在字体对象上使用configure方法
- 然后更改字体样式,例如font-family 、 font-size等。
下面给出了执行相同操作的正确方法。
方法
- 导入模块
- 创建窗口
- 使用font.nametofont方法创建字体对象。
- 在字体对象上使用configure方法
- 然后更改字体样式,例如font-family 、 font-size等。
- 添加所需元素
- 执行代码
程序:
Python3
# Import tkinter.Tk and widgets
from tkinter import Tk, font
from tkinter.ttk import Button, Label
class App:
def __init__(self, master: Tk) -> None:
self.master = master
# Creating a Font object of "TkDefaultFont"
self.defaultFont = font.nametofont("TkDefaultFont")
# Overriding default-font with custom settings
# i.e changing font-family, size and weight
self.defaultFont.configure(family="Segoe Script",
size=19,
weight=font.BOLD)
# Label widget
self.label = Label(self.master, text="I'm Label")
self.label.pack()
# Button widget
self.btn = Button(self.master, text="I'm Button")
self.btn.pack()
if __name__ == "__main__":
# Top level widget
root = Tk()
# Setting window dimensions
root.geometry("300x150")
# Setting app title
root.title("Changing Default Font")
print(font.names())
app = App(root)
# Mainloop to run application
# infinitely
root.mainloop()
输出:
更改配置前
更改配置后