小部件覆盖其框架的背景
Widgets overriding their frame's background
当我创建一个框架并为其设置背景颜色时,颜色显示得很好。但是,当我将小部件添加到框架时,背景颜色消失了。我已经尝试将相同的颜色设置为小部件的背景,但框架中仍然有很多白点。
这是不起作用的代码块:
DAC_frame = Frame(self, width=180, height=240, bg="red")
DAC_frame.pack(side=RIGHT)
DAC_delete_label = Label(DAC_frame, text="Delete A Term:", bg="red")
DAC_delete_label.pack(fill=X)
DAC_delete_entry = Entry(DAC_frame)
DAC_delete_entry.pack()
DAC_delete = Button(DAC_frame, text="Delete Term")
DAC_delete.pack()
DAC_clear = Button(DAC_frame, text="Clear Dictionary")
DAC_clear.pack()
您无法在 Tkinter 中设置透明颜色,这就是您 Frame
的背景消失的原因。所以 "white spots" 只是您的小部件的背景。您现在有两个选择:
- 使用
Canvas
here is a example 创建您自己的小部件
为每个小部件设置相同的背景颜色,对于按钮,您可以将 borderwidth
设置为 0。
from Tkconstants import RIGHT, X
from Tkinter import Frame, Tk, Label, Entry, Button
import Tkinter
class App(Tk):
def __init__(self):
Tkinter.Tk.__init__(self)
DAC_frame = Frame(self, width=180, height=240, bg="red")
DAC_frame.pack(side=RIGHT)
DAC_delete_label = Label(DAC_frame, text="Delete A Term:", bg="red")
DAC_delete_label.pack(fill=X)
DAC_delete_entry = Entry(DAC_frame)
DAC_delete_entry.pack()
DAC_delete = Button(DAC_frame, text="Delete Term",borderwidth=0, bg="red", activebackground="red")
DAC_delete.pack()
DAC_clear = Button(DAC_frame, text="Clear Dictionary",borderwidth=0, bg="red", activebackground="red")
DAC_clear.pack()
ap = App()
ap.mainloop()
当我创建一个框架并为其设置背景颜色时,颜色显示得很好。但是,当我将小部件添加到框架时,背景颜色消失了。我已经尝试将相同的颜色设置为小部件的背景,但框架中仍然有很多白点。
这是不起作用的代码块:
DAC_frame = Frame(self, width=180, height=240, bg="red")
DAC_frame.pack(side=RIGHT)
DAC_delete_label = Label(DAC_frame, text="Delete A Term:", bg="red")
DAC_delete_label.pack(fill=X)
DAC_delete_entry = Entry(DAC_frame)
DAC_delete_entry.pack()
DAC_delete = Button(DAC_frame, text="Delete Term")
DAC_delete.pack()
DAC_clear = Button(DAC_frame, text="Clear Dictionary")
DAC_clear.pack()
您无法在 Tkinter 中设置透明颜色,这就是您 Frame
的背景消失的原因。所以 "white spots" 只是您的小部件的背景。您现在有两个选择:
- 使用
Canvas
here is a example 创建您自己的小部件
为每个小部件设置相同的背景颜色,对于按钮,您可以将
borderwidth
设置为 0。from Tkconstants import RIGHT, X from Tkinter import Frame, Tk, Label, Entry, Button import Tkinter class App(Tk): def __init__(self): Tkinter.Tk.__init__(self) DAC_frame = Frame(self, width=180, height=240, bg="red") DAC_frame.pack(side=RIGHT) DAC_delete_label = Label(DAC_frame, text="Delete A Term:", bg="red") DAC_delete_label.pack(fill=X) DAC_delete_entry = Entry(DAC_frame) DAC_delete_entry.pack() DAC_delete = Button(DAC_frame, text="Delete Term",borderwidth=0, bg="red", activebackground="red") DAC_delete.pack() DAC_clear = Button(DAC_frame, text="Clear Dictionary",borderwidth=0, bg="red", activebackground="red") DAC_clear.pack() ap = App() ap.mainloop()