在Python中更改ttk按钮高度

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

这似乎是一个愚蠢的问题,但是是否可以手动更改 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。抱歉,这似乎是一个微不足道的问题,但我环顾四周,运气不佳。

python tkinter ttk
5个回答
20
投票

这对我有用:

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

其中

ipady
ipadx
在按钮内部添加像素,而
pady
padx
在按钮外部添加像素


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)

8
投票

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

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

或者,尝试在按钮上放置一个您想要的高度的透明图像,然后使用

compound
选项将标签覆盖在不可见图像上。

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

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

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


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

0
投票

好吧,根据答案,有很多技巧,所以它在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.