tkinter 页面切换
时间: 2023-05-14 22:02:52 浏览: 977
python tkinter实现界面切换的示例代码
5星 · 资源好评率100%
Tkinter是一个常用的Python GUI工具包,它可以方便地创建各种界面。在Tkinter中,页面切换是常见的需求之一,可以通过添加不同的控件或利用已经存在的控件来实现。
下面介绍两种实现tkinter页面切换的方法:
1. 利用tkinter控件的隐藏和显示功能
可以通过使用Frame控件来实现。将需要切换的页面作为不同的Frame,然后在需要切换页面的时候,将要切换的Frame显示,其他的Frame隐藏。可以通过以下代码实现:
```
import tkinter as tk
class DemoApp:
def __init__(self, master):
self.master = master
self.page1 = tk.Frame(self.master)
self.page2 = tk.Frame(self.master)
self.page1.pack()
self.page2.pack()
self.create_widgets_page1()
self.create_widgets_page2()
def create_widgets_page1(self):
self.lbl_page1 = tk.Label(self.page1, text='Page 1')
self.lbl_page1.pack()
def create_widgets_page2(self):
self.lbl_page2 = tk.Label(self.page2, text='Page 2')
self.lbl_page2.pack()
def show_page1(self):
self.page2.pack_forget()
self.page1.pack()
def show_page2(self):
self.page1.pack_forget()
self.page2.pack()
if __name__ == '__main__':
root = tk.Tk()
app = DemoApp(root)
tk.Button(root, text="Page 1", command=app.show_page1).pack()
tk.Button(root, text="Page 2", command=app.show_page2).pack()
root.mainloop()
```
在上面的代码中,我们利用Frame控件来实现页面的切换。创建两个Frame控件作为两个不同的页面,在show_page1()和show_page2()函数中,我们利用pack_forget()方法来隐藏不需要显示的页面,利用pack()方法来显示需要显示的页面。
2. 利用ttk.Notebook控件实现页面切换
ttk.Notebook控件可以给我们一个非常好的界面,效果类似于浏览器中的标签页。通过添加不同的子组件(例如Frame、Label、Button等)来实现页面的切换。可以通过以下代码实现:
```
import tkinter as tk
import tkinter.ttk as ttk
class DemoApp:
def __init__(self, master):
self.master = master
self.nb = ttk.Notebook(self.master)
self.page1 = tk.Frame(self.nb)
self.page2 = tk.Frame(self.nb)
self.nb.add(self.page1, text="Page 1")
self.nb.add(self.page2, text="Page 2")
self.create_widgets_page1()
self.create_widgets_page2()
self.nb.pack(expand=True, fill='both')
def create_widgets_page1(self):
self.lbl_page1 = tk.Label(self.page1, text='Page 1')
self.lbl_page1.pack()
def create_widgets_page2(self):
self.lbl_page2 = tk.Label(self.page2, text='Page 2')
self.lbl_page2.pack()
if __name__ == '__main__':
root = tk.Tk()
app = DemoApp(root)
root.mainloop()
```
在上面的代码中,我们使用了ttk.Notebook控件来实现页面的切换。添加不同的子组件(Frame、Label、Button等),并将它们添加到Notebook中。Notebook会自动为每个页面创建一个选项卡,并在选项卡之间切换。
总结
以上是两种常见的实现tkinter页面切换的方式,可以根据具体需求选择适合自己的方法。需要注意的是,在实现页面切换过程中,要注意控件之间的布局关系,以免造成页面混乱。
阅读全文