如何更改 tkinter 小部件中的边框颜色?
How to change border color in tkinter widget?
我想知道我应该如何更改 tkinter Label 或 Button 的边框颜色,我将 releif 放在 solid
中,边框颜色为黑色。我试过 highlightthickness
,highlightcolor
,highlightbackground
但没用
这是我的代码示例:
import tkinter as tk
root = tk.Tk()
root.geometry("800x450")
root.title("How should i change border color")
tk.Label(root,text = "How should i change border color",width = 50 , height = 4 ,bg = "White",relief = "solid").place(x=10,y=10)
tk.Button(root,text = "Button",width = 5 , height = 1 ,bg = "White",relief = "solid").place(x=100,y=100)
root.mainloop()
这是我要更改的(边框颜色现在是黑色,我想将其更改为红色):
image
我试过你说的 @moshe-perez 但它不起作用:
image
当您使用highlightbackground
时,您需要提供颜色代码,例如"#37d3ff"
。
所以使用 highlightbackground="COLORCODE"
并删除 relief="solid"
例如:
import tkinter as tk
root = tk.Tk()
root.geometry("800x450")
root.title("How should i change border color")
tk.Label(root, text="How should i change border color", width=50, height=4, bg="White", highlightthickness=4, highlightbackground="#37d3ff").place(x=10, y=10)
tk.Button(root, text="Button", width=5, height=1, bg="White", highlightbackground="#37d3ff").place(x=100, y=100)
root.mainloop()
结果:
更新:虽然它可以在我的 ubuntu 机器上运行,但我只是在 windows 上检查过它,但它在那里不起作用。
AFAIK,tkinter 中没有办法改变边框颜色。我使用的解决方法之一是在根目录中制作一个稍微大一点的标签,然后将我的标签放入其中。
import tkinter as tk
root = tk.Tk()
root.geometry("800x450")
root.title("How should i change border color")
border = tk.Label(root, width=52, height=5, bg='red')
border.place(x=10, y=10)
tk.Label(border, text="How should i change border color", width=50, height=4, bg="White", highlightthickness=4, highlightbackground="#37d3ff").place(x=1, y=1)
tk.Button(root, text="Button", width=5, height=1, bg="White", highlightbackground="#37d3ff").place(x=100, y=100)
root.mainloop()
不漂亮,但很管用。
这可能会有帮助,因为我用过 Frame
我可以更改背景颜色。
import tkinter as tk
root = tk.Tk()
root.geometry("800x450")
root.title("How should i change border color")
border = tk.Frame(root, background="green")
label = tk.Label(border, text="How should i change border color", bd=5)
label.pack(fill="both", expand=True, padx=5, pady=5)
border.pack(padx=20, pady=20)
button1 = tk.Button(root, background="green")
name = tk.Button(button1, text="click", bd=0)
name.pack(fill="both", expand=True, padx=2, pady=2)
button1.pack(padx=20, pady=20)
root.mainloop()
冗长但有效。
我想知道我应该如何更改 tkinter Label 或 Button 的边框颜色,我将 releif 放在 solid
中,边框颜色为黑色。我试过 highlightthickness
,highlightcolor
,highlightbackground
但没用
这是我的代码示例:
import tkinter as tk
root = tk.Tk()
root.geometry("800x450")
root.title("How should i change border color")
tk.Label(root,text = "How should i change border color",width = 50 , height = 4 ,bg = "White",relief = "solid").place(x=10,y=10)
tk.Button(root,text = "Button",width = 5 , height = 1 ,bg = "White",relief = "solid").place(x=100,y=100)
root.mainloop()
这是我要更改的(边框颜色现在是黑色,我想将其更改为红色):
image
我试过你说的 @moshe-perez 但它不起作用: image
当您使用highlightbackground
时,您需要提供颜色代码,例如"#37d3ff"
。
所以使用 highlightbackground="COLORCODE"
并删除 relief="solid"
例如:
import tkinter as tk
root = tk.Tk()
root.geometry("800x450")
root.title("How should i change border color")
tk.Label(root, text="How should i change border color", width=50, height=4, bg="White", highlightthickness=4, highlightbackground="#37d3ff").place(x=10, y=10)
tk.Button(root, text="Button", width=5, height=1, bg="White", highlightbackground="#37d3ff").place(x=100, y=100)
root.mainloop()
结果:
更新:虽然它可以在我的 ubuntu 机器上运行,但我只是在 windows 上检查过它,但它在那里不起作用。
AFAIK,tkinter 中没有办法改变边框颜色。我使用的解决方法之一是在根目录中制作一个稍微大一点的标签,然后将我的标签放入其中。
import tkinter as tk
root = tk.Tk()
root.geometry("800x450")
root.title("How should i change border color")
border = tk.Label(root, width=52, height=5, bg='red')
border.place(x=10, y=10)
tk.Label(border, text="How should i change border color", width=50, height=4, bg="White", highlightthickness=4, highlightbackground="#37d3ff").place(x=1, y=1)
tk.Button(root, text="Button", width=5, height=1, bg="White", highlightbackground="#37d3ff").place(x=100, y=100)
root.mainloop()
不漂亮,但很管用。
这可能会有帮助,因为我用过 Frame
我可以更改背景颜色。
import tkinter as tk
root = tk.Tk()
root.geometry("800x450")
root.title("How should i change border color")
border = tk.Frame(root, background="green")
label = tk.Label(border, text="How should i change border color", bd=5)
label.pack(fill="both", expand=True, padx=5, pady=5)
border.pack(padx=20, pady=20)
button1 = tk.Button(root, background="green")
name = tk.Button(button1, text="click", bd=0)
name.pack(fill="both", expand=True, padx=2, pady=2)
button1.pack(padx=20, pady=20)
root.mainloop()
冗长但有效。