frame.config(background="black")
返回错误unknown option "-background"
,因为这是一个ttk.Frame
,而不是tkinter.Frame
,ttk.Frame
的背景是使用ttk.Style
更改的(请参见下面的示例)。
lab.config(background="black")
出现错误'NoneType' object has no attribute 'config'
,因为您执行了lab = tk.Label(...).grid(...)
,而grid
返回None
,所以lab
是None
,而不是Label
。
root.config(background="black")
没有任何效果,因为小部件填充窗口,所以无法看到背景,就像naknak12解释的那样。
这里是一个使用ttk
小部件的示例:
import tkinter
from tkinter import ttk
root = tkinter.Tk()
root.configure(background='black')
style = ttk.Style(root)
style.configure('TLabel', background='black', foreground='white')
style.configure('TFrame', background='black')
frame = ttk.Frame(root)
frame.grid(column=0, row=0)
ttk.Button(frame, text="Open file", command=None).grid(column=0, row=1)
lab = ttk.Label(frame, text="test test test test test test ")
lab.grid(column=0, row=2)
root.mainloop()
以下是一个没有使用 ttk
的示例:
import tkinter
root = tkinter.Tk()
frame = tkinter.Frame(root)
frame.grid(column=0, row=0)
tkinter.Button(frame, text="Open file", command=None).grid(column=0, row=1 )
lab = tkinter.Label(frame, text="test test test test test test ")
lab.grid(column=0, row=2)
root.configure(background='black')
lab.configure(background='black', foreground='white')
frame.configure(background='black')
root.mainloop()
tk.Label().grid()
的返回值分配给了lab
。您必须将tk.Label()
的返回值分配给lab
,并在赋值后调用.grid()
。 - Aemyl