如何在tkinter ttk中没有边框效果?

时间:2016-12-06 08:16:21

标签: python tkinter border tk ttk

enter image description here

要获取tkinter tk中没有边框效果的按钮我曾经设置borderwidth=0。按钮将合并到背景中。但我无法在tkinter ttk中获得同样的效果。我设置了borderwidth=0样式。按钮始终具有边框宽度。我不知道为什么?

2 个答案:

答案 0 :(得分:1)

使用ttk样式将按钮释放设置为flat或将borderwidth设置为0,可以实现所需的效果。但是,某些ttk主题并未考虑这些样式设置,其中一个是Windows中的默认主题。将主题设置为' clam'或者' alt'应该解决你的问题。

import tkinter as tk
from tkinter import ttk

root = tk.Tk()

b1 = tk.Button(root, text='tk.Button', borderwidth=0)
b1.pack()

s = ttk.Style(root)
s.theme_use('clam')
s.configure('flat.TButton', borderwidth=0)
# s.configure('flat.TButton', relief='flat') gives the same result

b2 = ttk.Button(root, style='flat.TButton', text='ttk.Button')
b2.pack()

root.mainloop()

答案 1 :(得分:1)

您无法删除Windows或osx上的边框。在这些平台上使用ttk按钮的关键是获取本机小部件。如果您想要一个没有边框的按钮,请使用标准的tk按钮。