📜  如何更改 Tkinter 中的默认字体?

📅  最后修改于: 2022-05-13 01:54:22.893000             🧑  作者: Mango

如何更改 Tkinter 中的默认字体?

先决条件:Tkinter

Tkinter 为不同的事物提供了多种字体,例如标题、标题、文本、菜单等。但好处是我们可以使用tkinter.font模块覆盖这些字体。

Tkinter 提供的一些字体是:

  • 默认字体
  • TkMenu字体
  • Tk固定字体
  • TkSmallCaptionFont 等。

在本文中,我们将更改默认字体。为此,我们需要覆盖/更改TkDefaultFont 的配置。更改/覆盖默认字体非常简单,可以通过以下方式完成:

  • 使用font.nametofont方法创建字体对象。
  • 在字体对象上使用configure方法
  • 然后更改字体样式,例如font-familyfont-size等。

下面给出了执行相同操作的正确方法。

方法

  • 导入模块
  • 创建窗口
  • 使用font.nametofont方法创建字体对象。
  • 在字体对象上使用configure方法
  • 然后更改字体样式,例如font-familyfont-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()


输出

更改配置前

更改配置后