У меня есть tkinter root window
и toplevel window
с разными темами, но когда я открываю toplevel window
, он меняет root window
на темы, установленные для toplevel window
Я хочу сохранить темы, установленные для каждого окна. Это приводит к ошибке _tkinter.TclError: Theme MyStyle already exists
, когда я закрываю окно верхнего уровня и открываю его снова.
import tkinter as tk
import tkinter.ttk as ttk
def test2():
rt1 = tk.Toplevel()
rt1.geometry("500x500")
s = ttk.Style()
s.theme_create("MyStyle", parent="alt", settings={
"TNotebook": {"configure": {"tabmargins": [2, 5, 2, 0]}},
"TNotebook.Tab": {"configure": {"padding": [50, 8] }}})
s.theme_use("MyStyle")
notebook = ttk.Notebook(rt1)
f1 = tk.Frame(notebook, width=200, height=200)
f2 = tk.Frame(notebook, width=200, height=200)
notebook.add(f1, text="tab 1")
notebook.add(f2, text="tab 2")
notebook.grid(row=0, column=0, sticky="nw")
root = tk.Tk()
root.geometry("500x500")
tree = ttk.Treeview(root, column=("col1", "col2"))
tree.insert("", tk.END, values=("deee", "fjfj","fjjf", "jfjfjf"))
tree.pack()
b3 = tk.Button(root, text="new", command=test2)
b3.place(x=200, y=200)
root.mainloop()