1 回答
TA贡献1788条经验 获得超4个赞
字体选择器的制作非常简单。您真正要做的就是运行一个循环font.families()并将insert每次迭代返回到Listbox. 从那里,您只需告诉它将持久字体引用的 更改为单击时family选择的任何内容。对于将持久字体引用应用于其选项的任何内容,字体都会发生变化。ListboxListboxfont
import tkinter as tk
from tkinter import font
class App(tk.Tk):
def __init__(self):
tk.Tk.__init__(self)
#persistent font reference
textfont = font.Font(family='arial', size='14')
#something to type in ~ uses the persistent font reference
tk.Text(self, font=textfont).grid(row=0, column=0, sticky='nswe')
#make the textfield fill all available space
self.grid_rowconfigure(0, weight=1)
self.grid_columnconfigure(0, weight=1)
#font chooser
fc = tk.Listbox(self)
fc.grid(row=0, column=1, sticky='nswe')
#insert all the fonts
for f in font.families():
fc.insert('end', f)
#switch textfont family on release
fc.bind('<ButtonRelease-1>', lambda e: textfont.config(family=fc.get(fc.curselection())))
#scrollbar ~ you can actually just use the mousewheel to scroll
vsb = tk.Scrollbar(self)
vsb.grid(row=0, column=2, sticky='ns')
#connect the scrollbar and font chooser
fc.configure(yscrollcommand=vsb.set)
vsb.configure(command=fc.yview)
if __name__ == "__main__":
app = App()
app.title('Font Chooser Example')
app.geometry(f'800x600+200+200')
app.mainloop()
添加回答
举报