使用 Tkinter,我可以使用类似的方法设置按钮的高度
button = tkinter.Button(frame, text='hi', width=20, height=20...)
。
但是在我的程序中,我想使用 ttk 按钮。
button = ttk.Button(frame, text='hi', width=20, height=20...)
不起作用 - height
似乎不是一个有效的选项。我也找不到使用配置或更改样式元素来设置高度的方法。
如何明确设置 ttk 按钮的高度?
使用
ipady
和 ipadx
在按钮内部添加像素(与在外部添加像素的 pady
和 padx
不同):
my_button = ttk.Button(self, text="Hello World !")
my_button.grid(row=1, column=1, ipady=10, ipadx=10)
这是 Bryan Oakley 建议的实现,将按钮打包到框架中:
import Tkinter as tk
import ttk
class MyButton(ttk.Frame):
def __init__(self, parent, height=None, width=None, text="", command=None, style=None):
ttk.Frame.__init__(self, parent, height=height, width=width, style="MyButton.TFrame")
self.pack_propagate(0)
self._btn = ttk.Button(self, text=text, command=command, style=style)
self._btn.pack(fill=tk.BOTH, expand=1)
主题按钮的重点是提供统一的尺寸,因此不能直接完成。然而,有足够的空间进行创造性思维。例如:
将按钮打包到框架中,关闭框架的几何传播(以便框架的大小控制按钮的大小,而不是反之亦然);然后根据需要设置框架的大小。
使用透明图像作为按钮的标签,其高度需要控制按钮的高度;然后使用
compound
选项覆盖文本标签。
创建一个自定义主题,使用填充来获得您想要的大小。
将按钮放在网格中,使其“粘”到所有边,然后设置该行的最小高度。
当然,如果你使用的是 OSX,那么所有的赌注都会被取消——它真的想要使按钮具有特定的尺寸。
self.btn = ttk.Button(window, text="LOGIN", width=20, command=self.validate)
self.btn.place(x=435, y=300,width=230,height=50)
好吧,根据答案,有很多技巧,所以它在Macos上对我有用
start = ttk.Button(frame_2, text = "\nStart\n", width = 30).place(x = 710, y = 600)
在文本前后放置
\n
行可以使按钮变大。