Python 样式在类中不适用于任何对象?
为什么我的样式不改变这些对象的背景?我很恼火,把所有的事情都分配给了他们。还有为什么它有两个窗口?我发现这与样式不同有关,而与对象选项中的样式不同。。。我觉得我的类也一样,我应该Python 样式在类中不适用于任何对象?,python,class,tkinter,styles,Python,Class,Tkinter,Styles,为什么我的样式不改变这些对象的背景?我很恼火,把所有的事情都分配给了他们。还有为什么它有两个窗口?我发现这与样式不同有关,而与对象选项中的样式不同。。。我觉得我的类也一样,我应该def\u init\u(self)it吗?班级 import tkinter as tk import tkinter.ttk as ttk style = ttk.Style() style.configure("color1.TFrame", foreground = "black", background =
def\u init\u(self)
it吗?班级
import tkinter as tk
import tkinter.ttk as ttk
style = ttk.Style()
style.configure("color1.TFrame", foreground = "black", background = "red")
class main:
parent = tk.Tk()
n = ttk.Notebook(parent,style = "color1.TFrame")
f1 = ttk.Frame(n,style = "color1.TFrame") # first page tab
f2 = ttk.Frame(n,style = "color1.TFrame") # second page 2nd tab
window = f1
frame1 = ttk.Frame(window,style = "color1.TFrame")
frame1.grid(row = 1, column = 1, padx = 200, pady = 150)
frame2 = ttk.Frame(window)
frame2.grid(row = 2, column = 1,padx = 200, pady = 150)
main()
为什么看起来什么都没有出现,而您的样式也不起作用,是因为您实际上并没有绘制所有的小部件 您从未告诉以下小部件在您的窗口上实际绘制:
n
f1
f2
ttk.Style()
时,如果您还没有创建根窗口,则会加载第二个窗口。这比我能解释的要好得多
通过将程序更改为以下选项,您可以看到这些样式确实有效:
import tkinter as tk
import tkinter.ttk as ttk
class main:
parent = tk.Tk()
style = ttk.Style()
style.configure("color1.TFrame", foreground = "black", background = "red")
n = ttk.Notebook(parent,style = "color1.TFrame")
n.pack()
f1 = ttk.Frame(n,style = "color1.TFrame") # first page tab
f2 = ttk.Frame(n,style = "color1.TFrame") # second page 2nd tab
window = f1
f1.pack()
f2.pack()
frame1 = ttk.Frame(window,style = "color1.TFrame")
frame1.grid(row = 1, column = 1, padx = 200, pady = 150)
frame2 = ttk.Frame(window)
frame2.grid(row = 2, column = 1,padx = 200, pady = 150)
main()
可以说,这样做的更好方法如下:
import tkinter as tk
import tkinter.ttk as ttk
root = tk.Tk()
style = ttk.Style()
style.configure("color1.TFrame", foreground = "black", background = "red")
class main:
def __init__(self, root):
n = ttk.Notebook(root, style = "color1.TFrame")
f1 = ttk.Frame(n, style = "color1.TFrame")
f2 = ttk.Frame(n, style = "color1.TFrame")
n.pack()
f1.pack()
f2.pack()
frame1 = ttk.Frame(f1, style = "color1.TFrame")
frame2 = ttk.Frame(f1, style = "color1.TFrame")
frame1.grid(row = 1, column = 1, padx = 200, pady = 150)
frame2.grid(row = 2, column = 1,padx = 200, pady = 150)
main(root)
root.mainloop()
尽管这是主观的,并且实现了相同的目标。为什么看起来什么都没有出现,而您的样式不起作用,是因为您并没有真正绘制所有的小部件 您从未告诉以下小部件在您的窗口上实际绘制:
n
f1
f2
ttk.Style()
时,如果您还没有创建根窗口,则会加载第二个窗口。这比我能解释的要好得多
通过将程序更改为以下选项,您可以看到这些样式确实有效:
import tkinter as tk
import tkinter.ttk as ttk
class main:
parent = tk.Tk()
style = ttk.Style()
style.configure("color1.TFrame", foreground = "black", background = "red")
n = ttk.Notebook(parent,style = "color1.TFrame")
n.pack()
f1 = ttk.Frame(n,style = "color1.TFrame") # first page tab
f2 = ttk.Frame(n,style = "color1.TFrame") # second page 2nd tab
window = f1
f1.pack()
f2.pack()
frame1 = ttk.Frame(window,style = "color1.TFrame")
frame1.grid(row = 1, column = 1, padx = 200, pady = 150)
frame2 = ttk.Frame(window)
frame2.grid(row = 2, column = 1,padx = 200, pady = 150)
main()
可以说,这样做的更好方法如下:
import tkinter as tk
import tkinter.ttk as ttk
root = tk.Tk()
style = ttk.Style()
style.configure("color1.TFrame", foreground = "black", background = "red")
class main:
def __init__(self, root):
n = ttk.Notebook(root, style = "color1.TFrame")
f1 = ttk.Frame(n, style = "color1.TFrame")
f2 = ttk.Frame(n, style = "color1.TFrame")
n.pack()
f1.pack()
f2.pack()
frame1 = ttk.Frame(f1, style = "color1.TFrame")
frame2 = ttk.Frame(f1, style = "color1.TFrame")
frame1.grid(row = 1, column = 1, padx = 200, pady = 150)
frame2.grid(row = 2, column = 1,padx = 200, pady = 150)
main(root)
root.mainloop()
虽然这是主观的,并且实现了相同的目标。我可以在没有课堂的情况下让它工作……没有任何效果,因此风格没有理由发挥作用。我可以在没有课堂的情况下让它工作……没有任何效果,所以这种风格没有理由起作用谢谢你的回复我知道:)我现在也得到了,而不是从某个地方复制。谢谢你的回复我知道:)我现在也得到了,而不是从某个地方复制。