14

这似乎是一个愚蠢的问题,但是是否可以手动更改 ttk 按钮的高度?

类似的东西button = tkinter.Button(frame, text='hi', width=20, height=20...)对于 tkinter 按钮来说效果很好。虽然我更喜欢使用 ttk 按钮,因为它在美学上看起来要好得多。

button = ttk.Button(frame, text='hi', width=20, height=20...)不起作用,高度似乎不是一个有效的选择。我已经尝试使用 config 设置它或在样式中寻找要更改的元素,但没有任何运气。

有一个简单的解决方案吗?我正在使用 Python 2.7,Windows 作为记录。抱歉,这似乎是一个微不足道的问题,但我环顾四周没有太多运气。

4

5 回答 5

19

这对我有用:

my_button = ttk.Button(self, text="Hello World !")
my_button.grid(row=1, column=1, ipady=10, ipadx=10)

在哪里ipadyipadx在按钮内部添加像素padypadx在按钮外部添加像素不同

于 2018-02-16T01:57:29.070 回答
9

只是一个例子,正如@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)
于 2015-08-14T11:10:33.193 回答
7

要直接回答您的问题,不,您不能这样做。主题按钮的全部意义在于提供统一的尺寸。

话虽如此,开箱即用的思维还有很大的空间。例如,您可以将按钮打包到一个框架中,关闭框架上的几何传播(因此框架的大小控制按钮的大小,而不是反之亦然),然后将框架的大小设置为您想要的任何值。

或者,尝试在按钮上放置您想要的高度的透明图像,然后使用compound选项将标签覆盖在不可见图像上。

或者,创建一个使用填充来获得所需大小的自定义主题。

最后,您可以将按钮放在网格中,让它“粘”到所有侧面,然后为该行设置最小高度。

当然,如果你在 OSX 上,所有的赌注都没有——它真的想让按钮具有特定的大小。

于 2012-03-29T23:04:28.387 回答
3
self.btn = ttk.Button(window, text="LOGIN", width=20, command=self.validate)
self.btn.place(x=435, y=300,width=230,height=50)
于 2019-10-24T11:43:58.200 回答
0

好的,根据答案,有很多技巧,所以它在Macos上对我有用

start = ttk.Button(frame_2, text = "\nStart\n", width = 30).place(x = 710, y = 600)

在文本之前和之后放置\n线条使按钮更大。

于 2021-12-22T20:27:41.207 回答