如何在tkinter中更改fontsize按钮。我需要某种刷新按钮吗?

时间:2015-02-21 11:39:19

标签: python user-interface tkinter

我正在尝试在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()

1 个答案:

答案 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()