use*_*941 4 python tkinter colors
我对这个简单的 tkinter 程序越来越绝望:我似乎无法更改背景颜色(或单个小部件的颜色)!这里出了什么问题?
以下是我的各种尝试以及收到的错误的要点
import tkinter
import tkinter.ttk as tk
root = tkinter.Tk()
frame= tk.Frame(root)
frame.grid(column=0, row=0)
tk.Button(frame, text="Open file", command=None).grid(column=0, row=1 )
lab=tk.Label(frame, text="test test test test test test ").grid(column=0, row=2 )
#root.config(background="black") # does nothing
#frame.config(background="black") # Error: unknown option "-background"
#lab.config(background="black") # Error: 'NoneType' object has no attribute 'config'
root.mainloop()
Run Code Online (Sandbox Code Playgroud)
frame.config(background="black")返回错误,unknown option "-background"因为这是 a ttk.Frame,而不是 a ,tkinter.Frame并且 a 的背景ttk.Frame是使用 a 更改的ttk.Style(请参见下面的示例)。
lab.config(background="black") 给出错误,'NoneType' object has no attribute 'config'因为您这样做lab = tk.Label(...).grid(...)并grid返回Noneso labis None,而不是 a Label。
root.config(background="black")什么都不做,因为小部件填满了窗口,所以你看不到背景,就像 naknak12 解释的那样。
这是使用小部件的示例ttk:
import tkinter
from tkinter import ttk
root = tkinter.Tk()
root.configure(background='black')
# style configuration
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()
Run Code Online (Sandbox Code Playgroud)
还有一个没有的例子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()
Run Code Online (Sandbox Code Playgroud)