我试图通过使用不同的按钮将我的应用程序的起始页面链接到不同的框架 - 每个按钮都将链接到不同的框架。
当我使用 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() 函数将我的小部件放置在屏幕上时,试图将小部件放置在特定位置 - 我无法在它们之间建立链接不同的框架,我的打开页面是空白的 - 小部件没有出现:
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() 功能?(我无法将我的小部件放在特定位置)
谢谢你!