这似乎是一个愚蠢的问题,但是是否可以手动更改 ttk 按钮的高度?
类似
button = tkinter.Button(frame, text='hi', width=20, height=20...)
的东西对于 tkinter 按钮来说效果很好。虽然我更喜欢使用 ttk 按钮,因为它看起来更美观。
button = ttk.Button(frame, text='hi', width=20, height=20...)
不起作用,高度似乎不是一个有效的选项。我尝试过使用配置来设置它或寻找样式中的元素进行更改,但没有任何运气。
有没有简单的解决方案?我使用的是Python 2.7,Windows。抱歉,这似乎是一个微不足道的问题,但我环顾四周,运气不佳。
这对我有用:
my_button = ttk.Button(self, text="Hello World !")
my_button.grid(row=1, column=1, ipady=10, ipadx=10)
其中
ipady
和 ipadx
在按钮内部添加像素,而 pady
和 padx
在按钮外部添加像素
举个例子,正如@Bryan所说,“例如,你可以将按钮打包到一个框架中”,我是这样做的:
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
行可以使按钮变大。