在Python中更改ttk按钮高度

时间:2012-03-29 14:26:57

标签: tkinter ttk

这似乎是一个愚蠢的问题,但是可以手动更改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进行记录。对不起,这看起来像是一个微不足道的问题但是我没有太多运气看了看。

4 个答案:

答案 0 :(得分:6)

要直接回答你的问题,不,你不能这样做。主题按钮的重点是提供统一的尺寸。

话虽如此,但仍有足够的空间进行开箱即用的思考。例如,您可以将按钮打包到框架中,在框架上关闭几何体传播(因此框架的大小控制按钮的大小而不是反之亦然),然后将框架的大小设置为您想要的任何大小。

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

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

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

当然,如果你在OSX上,所有的赌注都已关闭 - 真的希望按钮具有特定的尺寸。

答案 1 :(得分:5)

就像一个例子,正如@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)

答案 2 :(得分:1)

这对我有用:

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

其中ipadyipadx在按钮内添加像padypadx不同的像素,这会在按钮外添加像素

答案 3 :(得分:0)

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