我正在尝试在 tkinter 中使用复选框。我的 GUI 有一个深色主题,所以我想在深色背景上使用白色文本。不幸的是,如果我通过设置
fg="white"
bg="black"
来做到这一点,那么除了出现勾号的框保持白色之外,我会得到黑色背景。这意味着刻度在白色背景上是白色的,因此不可见。
是否有某种方法可以更改刻度线出现的框的背景,或者最好将刻度线的颜色设置为独立于文本的其余部分,即,这样我可以让支票本身成为白色上的黑色刻度线背景,而小部件的其余部分由黑色背景上的白色文本组成。
为了说明问题:
import tkinter as tk
root = tk.Tk()
var = tk.BooleanVar()
checkbutton = tk.Checkbutton(root, text="example", variable=var, bg="black", fg="white")
checkbutton.grid()
tk.mainloop()
所以我想在深色背景上使用白色文本。不幸的是如果我 通过设置 fg="white" bg="black" 来做到这一点,然后我得到黑色背景 除了出现勾号的框保持白色。
问题可以解决。
checkbutton.config
内on_button_toggle() function.
onvalue=1
、offvalue=0
、command=on_button_toggle
在 Checkbutton
小部件中。checkbutton.config
。checkbutton.flash()
之前添加
mainloop()
片段:
import tkinter as tk
root = tk.Tk()
var = tk.BooleanVar()
def on_button_toggle():
if var.get() == 1:
checkbutton.config(bg="white")
else:
checkbutton.config(bg="black")
checkbutton = tk.Checkbutton(root, text="example", variable=var, bg="black", fg="white",
onvalue=1, offvalue=0 ,
command=on_button_toggle)
checkbutton.config(bg="lightgrey", fg="blue", font=("Arial", 12),
selectcolor="green", relief="raised", padx=10, pady=5)
checkbutton.grid()
checkbutton.flash()
tk.mainloop()
截图: