如何在主循环期间更改 Tkinter 应用程序的默认字体?
我想在我的应用程序中有一个按钮,用户可以在其中增加或减少所有小部件的字体。目前,我只是在一开始就更改了 root 的默认字体大小,但在应用程序运行后我无法修改字体大小。
我知道 Tkinter 允许您使用 root.option_add("*Font", font) 更改默认值,但是如何在应用程序运行时修改字体?
这是我正在尝试做的一个例子:
import tkinter as tk
class Application(tk.Frame):
def __init__(self, master=None):
super().__init__(master, bg= "#E3E5E6")
self.master = master
self.grid(sticky = "NESW")
self.menubar = tk.Menu(self)
fileMenu = tk.Menu(self.menubar)
fileMenu.add_command(label="Change Font Size", command =self.changeFontSize)
self.menubar.add_cascade(label = "Click Me", menu = fileMenu)
self.master.configure(menu=self.menubar)
text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
self.messageWidgetExample = tk.Message(text = text)
self.messageWidgetExample.grid()
def changeFontSize(self):
print("Change Font Size")
self.master.option_add("*Font", "calibri 8")
self.master.update()
# Doesn't work either
# self.messageWidgetExample.update()
root = tk.Tk()
root.grid_rowconfigure(0, weight=1)
root.grid_columnconfigure(0, weight=1)
root.option_add("*Font", "calibri 14")
app = Application(master=root)
app.mainloop()
料青山看我应如是
相关分类