Полный начинающий Tkinter здесь. Я пытаюсь создать графический интерфейс, где у меня есть несколько кадров на вкладке, и я могу изменить, какой кадр отображается с помощью переключателей (переключатели находятся внутри вкладки). Это мой текущий код, который правильно создает вкладки и переключатели.
from tkinter import *
from tkinter import ttk
root = Tk()
root.title("JPM")
#GUI tabs
nb = ttk.Notebook(root)
nb.grid(row=1, column=0, sticky=W, padx=10, pady=10)
#GUI tab1 (open orders)
tab1 = ttk.Frame(nb)
nb.add(tab1, text="Open orders")
#GUI tab2 (closed orders)
tab2 = ttk.Frame(nb)
nb.add(tab2, text="Closed orders")
Label(tab1, text="Order#", font='Helvetica 10 bold').grid(row=0, column=0, padx=10, pady=5, sticky=W)
Label(tab1, text="Order Date", font='Helvetica 10 bold').grid(row=0, column=1, padx=10, pady=5, sticky=W)
Label(tab1, text="Items", font='Helvetica 10 bold').grid(row=0, column=2, padx=10, pady=5, sticky=W)
Label(tab1, text="Status", font='Helvetica 10 bold').grid(row=0, column=3, padx=10, pady=5, sticky=W)
Label(tab2, text="Time Elapsed", font='Helvetica 10 bold').grid(row=0, column=0, padx=10, pady=5, sticky=W)
Label(tab2, text="Time Left", font='Helvetica 10 bold').grid(row=0, column=1, padx=10, pady=5, sticky=W)
Label(tab2, text="Unit Price", font='Helvetica 10 bold').grid(row=0, column=2, padx=10, pady=5, sticky=W)
Label(tab2, text="Total price", font='Helvetica 10 bold').grid(row=0, column=3, padx=10, pady=5, sticky=W)
u = StringVar()
u.set("all fulfilled") # Default value of the radio button
Radiobutton(tab1, text="In Collection", variable=u, value="in collection", command=None).grid(
row=0, column=4, padx=0, pady=5, sticky=W)
Radiobutton(tab1, text="In Production", variable=u, value="in production", command=None).grid(
row=0, column=5, padx=10, pady=5, sticky=W)
Radiobutton(tab1, text="In Packaging", variable=u, value="in packaging", command=None).grid(row=0,
column=6, padx=10, pady=5, sticky=W)
Radiobutton(tab1, text="All", variable=u, value="all fulfilled", command=None).grid(row=0, column=7, padx=10, pady=5, sticky=W)
root.mainloop()
Я пытался создать новый кадр с tab1 в качестве родителя следующим образом:
new_frame = ttk.Frame(tab1)
, но когда яДобавьте метки и кнопки внутри new_frame, в tab1 ничего не отображается. Моя идея состояла в том, чтобы создать разные рамки для каждой радиокнопки и изменить команду радиокнопки на:
new_frame.tkraise()
, чтобы поднять правильный кадр на вершину при выборе радиокнопки.
Любая помощьбудет принята с благодарностью!