代码之家  ›  专栏  ›  技术社区  ›  user7088941

无法在tkinter中更改按钮字体大小

  •  4
  • user7088941  · 技术社区  · 8 年前

    我似乎无法在tkinter中更改字体大小!无论我选择哪种大小,按钮文本都会显示相同的大小。如果我删除了整个 stlye 行,它显示得更小。

    同样,无论我选择什么,字体看起来总是一样的。

    我想调整一下大小和字体,你能帮我吗?

    import tkinter
    import tkinter.ttk as ttk
    from tkinter import font
    
    root = tkinter.Tk()
    
    frame = ttk.Frame(root)
    frame.grid(column=0, row=0)
    
    style = ttk.Style(root)
    
    ttk.Button(frame, text="Open file", command=None).grid(column=0, row=1)
    
    ttk.Style().configure("TButton", font=font.Font(family='wasy10', size=80)) #I can choose any value here instead of "80" and any font like "Helvetica" - nothing will change
    
    root.mainloop()
    
    1 回复  |  直到 8 年前
        1
  •  7
  •   Mike - SMT    8 年前

    您不需要导入字体。ttk样式有自己的字体参数。 只需将样式放在第一个选项中,将字体大小放在第二个选项中即可。

    我还将使用变量名来编辑样式。而不是呼叫:

    ttk.Style().configure()
    

    执行以下操作:

    style.configure()
    

    请看下面的内容。

    import tkinter
    import tkinter.ttk as ttk
    
    
    root = tkinter.Tk()
    
    frame = ttk.Frame(root)
    frame.grid(column=0, row=0)
    
    style = ttk.Style(root)
    style.configure("TButton", font=('wasy10', 80))
    
    ttk.Button(frame, text="Open file", command=None, style="TButton").grid(column=0, row=1)
    
    
    root.mainloop()
    

    根据布莱恩·奥克利(BryanOakley)在评论中的建议,这里有第二种选择,它与您正在尝试的方法非常接近 fort

    此选项将引用保存到字体对象,然后使用它更新样式。

    import tkinter
    import tkinter.ttk as ttk
    from tkinter import font
    
    
    root = tkinter.Tk()
    
    frame = ttk.Frame(root)
    frame.grid(column=0, row=0)
    
    style = ttk.Style(root)
    font = font.Font(family="wasy10", size=80)
    style.configure("TButton", font=font)
    
    ttk.Button(frame, text="Open file", command=None, style="TButton").grid(column=0, row=1)
    
    root.mainloop()