matinal:Python tk页面跳转

简单的pc端app往往会需要一个登入界面,如果进行界面跳转呢?
这里就以tkinter主窗口为实例,进行窗口的跳转,具体代码如下:

import tkinter as tk
#登入界面
def enter():
   root=tk.Tk()
   root.title("欢迎使用图书管理系统")
   lab_1=tk.Label(root,text="请登入")
   but_dr=tk.Button(root,text="登入",command=root.destroy)
   lab_1.grid(row=0,column=0)
   but_dr.grid(row=1,column=1)
   root.mainloop()


enter()
#主程序界面
root2=tk.Tk()
root2.title("欢迎进入图书管理系统")
lab_1=tk.Label(root2,text="第二个界面",height=3)
lab_1.grid(row=0,column=0,sticky="w"+"e")
root2.mainloop()

Tkinter中,可以使用Toplevel类创建新的窗口,并使用withdraw()和deiconify()方法隐藏和显示它们。可以将这些新窗口作为应用程序的不同页面来实现界面跳转。 以下是一个简单的示例,演示如何使用Toplevel实现界面跳转: ```python import tkinter as tk class Page1(tk.Frame): def __init__(self, master=None): super().__init__(master) self.master = master self.create_widgets() def create_widgets(self): self.label = tk.Label(self, text="This is Page 1") self.label.pack(padx=20, pady=20) self.button = tk.Button(self, text="Go to Page 2", command=self.go_to_page2) self.button.pack(padx=20, pady=20) def go_to_page2(self): self.master.switch_frame(Page2) class Page2(tk.Frame): def __init__(self, master=None): super().__init__(master) self.master = master self.create_widgets() def create_widgets(self): self.label = tk.Label(self, text="This is Page 2") self.label.pack(padx=20, pady=20) self.button = tk.Button(self, text="Go to Page 1", command=self.go_to_page1) self.button.pack(padx=20, pady=20) def go_to_page1(self): self.master.switch_frame(Page1) class Application(tk.Tk): def __init__(self): super().__init__() self.title("Page Switching Example") self.geometry("300x200") self.create_widgets() def create_widgets(self): self.container = tk.Frame(self) self.container.pack(side="top", fill="both", expand=True) self.container.grid_rowconfigure(0, weight=1) self.container.grid_columnconfigure(0, weight=1) self.frames = {} for F in (Page1, Page2): frame = F(self.container) self.frames[F] = frame frame.grid(row=0, column=0, sticky="nsew") self.switch_frame(Page1) def switch_frame(self, frame_class): frame = self.frames[frame_class] frame.tkraise() if __name__ == "__main__": app = Application() app.mainloop() ``` 在上面的示例中,我们创建了一个继承自Tk类的Application类,并在其中定义了两个页面(Page1和Page2)以及一个用于切换页面的switch_frame方法。我们在create_widgets方法中创建了两个页面,并使用grid布局将它们放置在同一个容器(Frame)中。然后我们调用switch_frame方法来切换页面。 在每个页面类中,我们定义了一个go_to_pageX方法,它通过调用switch_frame方法来实现页面跳转。在Application类中,我们使用容器(Frame)来容纳所有的页面,并在switch_frame方法中使用tkraise()方法将要显示的页面提升到最前面。 以上是一个基本的界面跳转的示例,你可以根据自己的需求对其进行修改和扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值