Я пытаюсь связать начальную страницу моего приложения с разными фреймами, используя разные кнопки - каждая из них будет ссылаться на свой фрейм.
, когда я использовал функцию widget.pack () для разместить свои виджеты на экране - я смог успешно соединить эти кадры:
from Tkinter import *
def raise_frame(frame):
frame.tkraise()
root = Tk()
root.geometry("800x500+250+110")
f1 = Frame(root)
f2 = Frame(root)
for frame in (f1, f2):
frame.grid(row=0, column=0, sticky='news')
b1 = Button(f1, text='Go to frame 2', command=lambda:raise_frame(f2))
b1.pack()
l1 = Label(f1, text='FRAME 1')
l1.pack()
l2 = Label(f2, text='FRAME 2')
l2.pack()
b2 = Button(f2, text='Go to frame 1', command=lambda:raise_frame(f1))
b2.pack()
raise_frame(f1)
root.mainloop()
Но, когда я использовал функцию Widget.Place (x, y) в дополнение к widget.pack () функция для размещения моих виджетов на экране, пытаясь разместить виджеты в указанных c точках - я не смог связать разные кадры, и моя начальная страница была пустой - виджеты не появлялись:
from Tkinter import *
def raise_frame(frame):
frame.tkraise()
root = Tk()
root.geometry("800x500+250+110")
f1 = Frame(root)
f2 = Frame(root)
for frame in (f1, f2):
frame.grid(row=0, column=0, sticky='news')
b1 = Button(f1, text='Go to frame 2', command=lambda:raise_frame(f2))
b1.pack()
b1.place(x=100,y=200)
l1 = Label(f1, text='FRAME 1')
l1.pack()
l1.place(x=200, y=300)
l2 = Label(f2, text='FRAME 2')
l2.pack()
l2.place(x=200, y=300)
b2 = Button(f2, text='Go to frame 3', command=lambda:raise_frame(f3))
b2.pack()
b2.place(x=100,y=200)
raise_frame(f1)
root.mainloop()
мой вопрос - есть ли возможность использовать функцию widget.place (x, y) для размещения виджетов на рамке? или я должен использовать функцию widget.pack ()? (где я не могу разместить свой виджет в определенном c месте)
спасибо!