我正在尝试在tkinter中创建一个设置字体窗口,作为滚动文本程序的导入模块。我有一组按钮,每个按钮都有一个命令。我知道可能有一个较短的方法,但我只需要帮助设置字体大小。任何帮助表示赞赏。
from tkinter import*
def f2():
fontsize=2
font.update()
def f4():
fontsize=4
font.update()
def f6():
fontsize=6
font.update()
def f8():
fontsize=8
font.update()
def f10():
fontsize=10
font.update()
def f12():
fontsize=12
font.update()
def f14():
fontsize=14
font.update()
def f16():
fontsize=16
font.update()
def f18():
fontsize=18
font.update()
def f20():
fontsize=20
font.update()
def f22():
fontsize=22
font.update()
def f24():
fontsize=24
font.update()
def f26():
fontsize=26
font.update()
def f28():
fontsize=28
font.update()
def f30():
fontsize=30
font.update()
def f32():
fontsize=32
font.update()
def f34():
fontsize=34
font.update()
def f36():
fontsize=36
font.update()
def f38():
fontsize=38
font.update()
def f40():
fontsize=40
font.update()
def f42():
fontsize=42
font.update()
def f44():
fontsize=44
font.update()
def f46():
fontsize=46
font.update()
def f48():
fontsize=48
font.update()
def f50():
fontsize=50
font.update()
def f52():
fontsize=52
font.update()
def f54():
fontsize=54
font.update()
def f56():
fontsize=56
font.update()
def f58():
fontsize=58
font.update()
def f60():
fontsize=60
font.update()
def f62():
fontsize=62
font.update()
def f64():
fontsize=64
font.update()
def f66():
fontsize=66
font.update()
def f68():
fontsize=68
font.update()
def f70():
fontsize=70
font.update()
def f72():
fontsize=72
font.update()
def f74():
fontsize=74
font.update()
def f76():
fontsize=76
font.update()
def f78():
fontsize=78
font.update()
def f80():
fontsize=80
font.update()
def f82():
fontsize=82
font.update()
def f84():
fontsize=84
font.update()
def f86():
fontsize=86
font.update()
def f88():
fontsize=88
font.update()
def f90():
fontsize=90
font.update()
def f92():
fontsize=92
font.update()
def f94():
fontsize=94
font.update()
def f96():
fontsize=96
font.update()
def f98():
fontsize=98
font.update()
def f100():
fontsize=100
font.update()
def f102():
fontsize=102
font.update()
def f104():
fontsize=104
font.update()
def f106():
fontsize=106
font.update()
def f108():
fontsize=108
font.update()
def f110():
fontsize=110
font.update()
def f112():
fontsize=112
font.update()
def f114():
fontsize=114
font.update()
def f116():
fontsize=116
font.update()
def f118():
fontsize=118
font.update()
def f120():
fontsize=120
font.update()
def f122():
fontsize=122
font.update()
def f124():
fontsize=124
font.update()
def f126():
fontsize=126
font.update()
def f128():
fontsize=128
font.update()
def size():
Buttonf1=Button(font,text="2",command=f2).place(x=10,y=50)
Buttonf2=Button(font,text="4",command=f4).place(x=60,y=50)
Buttonf3=Button(font,text="6",command=f6).place(x=110,y=50)
Buttonf4=Button(font,text="8",command=f8).place(x=160,y=50)
Buttonf5=Button(font,text="10",command=f10).place(x=210,y=50)
Buttonf6=Button(font,text="12",command=f12).place(x=260,y=50)
Buttonf7=Button(font,text="14",command=f14).place(x=310,y=50)
Buttonf8=Button(font,text="16",command=f16).place(x=360,y=50)
Buttonf9=Button(font,text="18",command=f18).place(x=10,y=100)
Buttonf10=Button(font,text="20",command=f20).place(x=60,y=100)
Buttonf11=Button(font,text="22",command=f22).place(x=110,y=100)
Buttonf12=Button(font,text="24",command=f24).place(x=160,y=100)
Buttonf13=Button(font,text="26",command=f26).place(x=210,y=100)
Buttonf14=Button(font,text="28",command=f28).place(x=260,y=100)
Buttonf15=Button(font,text="30",command=f30).place(x=310,y=100)
Buttonf16=Button(font,text="32",command=f32).place(x=360,y=100)
Buttonf17=Button(font,text="34",command=f34).place(x=10,y=150)
Buttonf18=Button(font,text="36",command=f36).place(x=60,y=150)
Buttonf19=Button(font,text="38",command=f38).place(x=110,y=150)
Buttonf20=Button(font,text="40",command=f40).place(x=160,y=150)
Buttonf21=Button(font,text="42",command=f42).place(x=210,y=150)
Buttonf22=Button(font,text="44",command=f44).place(x=260,y=150)
Buttonf23=Button(font,text="46",command=f46).place(x=310,y=150)
Buttonf24=Button(font,text="48",command=f48).place(x=360,y=150)
Buttonf25=Button(font,text="50",command=f50).place(x=10,y=200)
Buttonf26=Button(font,text="52",command=f52).place(x=60,y=200)
Buttonf27=Button(font,text="54",command=f54).place(x=110,y=200)
Buttonf28=Button(font,text="56",command=f56).place(x=160,y=200)
Buttonf29=Button(font,text="58",command=f58).place(x=210,y=200)
Buttonf30=Button(font,text="60",command=f60).place(x=260,y=200)
Buttonf31=Button(font,text="62",command=f62).place(x=310,y=200)
Buttonf32=Button(font,text="64",command=f64).place(x=360,y=200)
Buttonf33=Button(font,text="66",command=f66).place(x=10,y=250)
Buttonf34=Button(font,text="68",command=f68).place(x=60,y=250)
Buttonf35=Button(font,text="70",command=f70).place(x=110,y=250)
Buttonf36=Button(font,text="72",command=f72).place(x=160,y=250)
Buttonf37=Button(font,text="74",command=f74).place(x=210,y=250)
Buttonf38=Button(font,text="76",command=f76).place(x=260,y=250)
Buttonf39=Button(font,text="78",command=f78).place(x=310,y=250)
Buttonf40=Button(font,text="80",command=f80).place(x=360,y=250)
Buttonf41=Button(font,text="82",command=f82).place(x=10,y=300)
Buttonf42=Button(font,text="84",command=f84).place(x=60,y=300)
Buttonf43=Button(font,text="86",command=f86).place(x=110,y=300)
Buttonf44=Button(font,text="88",command=f88).place(x=160,y=300)
Buttonf45=Button(font,text="90",command=f90).place(x=210,y=300)
Buttonf46=Button(font,text="92",command=f92).place(x=260,y=300)
Buttonf47=Button(font,text="94",command=f94).place(x=310,y=300)
Buttonf48=Button(font,text="96",command=f96).place(x=360,y=300)
Buttonf49=Button(font,text="98",command=f98).place(x=10,y=350)
Buttonf50=Button(font,text="100",command=f100).place(x=60,y=350)
Buttonf51=Button(font,text="102",command=f102).place(x=110,y=350)
Buttonf52=Button(font,text="104",command=f104).place(x=160,y=350)
Buttonf53=Button(font,text="106",command=f106).place(x=210,y=350)
Buttonf54=Button(font,text="108",command=f108).place(x=260,y=350)
Buttonf55=Button(font,text="110",command=f110).place(x=310,y=350)
Buttonf56=Button(font,text="112",command=f112).place(x=360,y=350)
Buttonf57=Button(font,text="114",command=f114).place(x=10,y=400)
Buttonf58=Button(font,text="116",command=f116).place(x=60,y=400)
Buttonf59=Button(font,text="118",command=f118).place(x=110,y=400)
Buttonf60=Button(font,text="120",command=f120).place(x=160,y=400)
Buttonf61=Button(font,text="122",command=f122).place(x=210,y=400)
Buttonf62=Button(font,text="124",command=f124).place(x=260,y=400)
Buttonf63=Button(font,text="126",command=f126).place(x=310,y=400)
Buttonf64=Button(font,text="128",command=f128).place(x=360,y=400)
font=Tk()
font.geometry('400x500')
font.title=('Font')
fontfamily='DejaVu Sans'
fontsize=-12
font.option_add('*Font',(fontfamily,fontsize))
size()
font.mainloop()
答案 0 :(得分:1)
我确切地说,你想要什么。你看到change_font
了吗?只有1 change_font
并且它需要参数,因此您可以重复使用它。 ttk
是一个模块,它包含一组额外的小部件和函数,对于任何非常重要的事情都非常有用。我们使用ttk.Style()
以级联方式更改gui的样式,target="."
是通用选择器,因此如果您只想更改特定小部件的大小,请更改目标。希望它有所帮助。
import tkinter as tk
import tkinter.ttk as ttk
class GraphicalUserInterfaceTk(tk.Tk):
def __init__(self):
tk.Tk.__init__(self)
self.title("fonts")
self.style = ttk.Style()
sizes = range(6,130,2)
for i, size in enumerate(sizes):
def set_font_size(size=size):
return self.change_font(self.style, size=size)
ttk.Button(self, text=str(size), command=set_font_size).grid(row=i+1)
self.print = ttk.Label(self,text="some text")
self.print.grid(row=0)
def start(self):
self.mainloop()
def change_font(self,style, target=".", family="DejaVu Sans", size=12):
self.print['text'] = family + str(size)
style.configure(target, font=(family, size))
gui = GraphicalUserInterfaceTk()
gui.start()