使用Tkinter,如何使ttk.Button大小适合其文本?

时间:2018-11-30 04:30:06

标签: python tkinter

我浏览了Button窗口小部件的选项,但是找不到任何看起来像“适合内容”的东西。

我是否必须显式设置大小以使其按钮大小适合其text

示例:

import tkinter as TK
from tkinter import ttk

root = TK.Tk()
root.title('Buttons bigger than text')
root.geometry('{}x{}+0+0'.format(800, 800))
root.resizable(width=False, height=False)

mainFrame = TK.Frame(root, bg='green')
mainFrame.pack(side="top", fill="both", expand=True)

for r in range(0, 5):
    row = TK.Frame(mainFrame, bg='blue')
    mainFrame.grid_rowconfigure(r, weight=1)
    mainFrame.grid_columnconfigure(0, weight=1)
    row.pack(side="top", fill="both", expand=True)
    bt1 = ttk.Button(row, text='mybutton')
    bt2 = ttk.Button(row, text='?')
    row.grid_rowconfigure(0, weight=1)
    row.grid_columnconfigure(0, weight=1)
    row.grid_columnconfigure(1, weight=1)
    bt1.grid(row=0, column=0, sticky='nsw')
    bt2.grid(row=0, column=1, sticky='nsw')
root.mainloop()

这是ttk.Button的特定问题吗?我用Tk.Button进行了测试,它按预期工作。

环境

macOS High Sierra上的Python 3.6.4 Homebrew。

1 个答案:

答案 0 :(得分:2)

默认情况下,按钮小部件将尝试适应其文本。那是他们记录的行为。您明确要求它们在使用sticky选项时进行拉伸以填充其空间。

此外,特别是在OSX上,我认为使用本机主题时按钮的最小尺寸可能有所限制,但我可能会误解。