使主题 TK 按钮具有边框
Making themed TK button have a border
使用 Linux 上的默认主题,我无法让按钮有边框。这是我的尝试:
from tkinter import *
from tkinter.ttk import *
tk = Tk()
style = Style()
style.configure('TButton.border', background='red')
button = Button(tk, text='Hello')
button.pack()
mainloop()
我发现主题化非常困难,因为不清楚我可以更改什么。有时更改似乎无济于事。
这取决于您使用的主题;并非所有主题都将所有小部件与其可能拥有的所有元素相关联,并且一些(例如,OSX 原生主题,aqua
)确实非常严格地控制许多元素的外观和感觉(因为在这种情况下,主题引擎委托给本机绘图代码)。您使用的主题完全有可能根本不允许使用红色边框。
尝试切换到不同的主题...
ttk.Style().theme_use('clam')
简单的建议...如果你真的想要一个边框。理解应该不尽如人意。
import Tkinter as tk
root = tk.Tk()
def nothing(event=None):
print "click"
bgbutton= tk.Button(root, )
bgbutton.pack()
bgbutton.configure(relief=tk.GROOVE, borderwidth=5, background="#2244FF", activebackground="#FF0000", highlightcolor="#00FF00")
button= tk.Button(bgbutton, text="Glance at my border", command=nothing)
button.pack()
button.configure(relief=tk.GROOVE, borderwidth=2)
root.mainloop()
使用 Linux 上的默认主题,我无法让按钮有边框。这是我的尝试:
from tkinter import *
from tkinter.ttk import *
tk = Tk()
style = Style()
style.configure('TButton.border', background='red')
button = Button(tk, text='Hello')
button.pack()
mainloop()
我发现主题化非常困难,因为不清楚我可以更改什么。有时更改似乎无济于事。
这取决于您使用的主题;并非所有主题都将所有小部件与其可能拥有的所有元素相关联,并且一些(例如,OSX 原生主题,aqua
)确实非常严格地控制许多元素的外观和感觉(因为在这种情况下,主题引擎委托给本机绘图代码)。您使用的主题完全有可能根本不允许使用红色边框。
尝试切换到不同的主题...
ttk.Style().theme_use('clam')
简单的建议...如果你真的想要一个边框。理解应该不尽如人意。
import Tkinter as tk
root = tk.Tk()
def nothing(event=None):
print "click"
bgbutton= tk.Button(root, )
bgbutton.pack()
bgbutton.configure(relief=tk.GROOVE, borderwidth=5, background="#2244FF", activebackground="#FF0000", highlightcolor="#00FF00")
button= tk.Button(bgbutton, text="Glance at my border", command=nothing)
button.pack()
button.configure(relief=tk.GROOVE, borderwidth=2)
root.mainloop()