如何控制ttk.Button的高度?

问题描述 投票:0回答:5

使用 Tkinter,我可以使用类似的方法设置按钮的高度

button = tkinter.Button(frame, text='hi', width=20, height=20...)

但是在我的程序中,我想使用 ttk 按钮。

button = ttk.Button(frame, text='hi', width=20, height=20...)
不起作用 -
height
似乎不是一个有效的选项。我也找不到使用配置或更改样式元素来设置高度的方法。

如何明确设置 ttk 按钮的高度?

python tkinter ttk
5个回答
21
投票

使用

ipady
ipadx
在按钮内部添加像素(与在外部添加像素的
pady
padx
不同):

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

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)

9
投票

主题按钮的重点是提供统一的尺寸,因此不能直接完成。然而,有足够的空间进行创造性思维。例如:

  • 将按钮打包到框架中,关闭框架的几何传播(以便框架的大小控制按钮的大小,而不是反之亦然);然后根据需要设置框架的大小。

  • 使用透明图像作为按钮的标签,其高度需要控制按钮的高度;然后使用

    compound
    选项覆盖文本标签。

  • 创建一个自定义主题,使用填充来获得您想要的大小。

  • 将按钮放在网格中,使其“粘”到所有边,然后设置该行的最小高度。

当然,如果你使用的是 OSX,那么所有的赌注都会被取消——它真的想要使按钮具有特定的尺寸。


4
投票
self.btn = ttk.Button(window, text="LOGIN", width=20, command=self.validate)
self.btn.place(x=435, y=300,width=230,height=50)

-1
投票

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

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

在文本前后放置

\n
行可以使按钮变大。

© www.soinside.com 2019 - 2024. All rights reserved.