python tkinter多个软件界面切换功能实现

时间:2025-04-07 11:59:02
import tkinter from tkinter import * from ttkbootstrap import * class MainWindows(Tk): def __init__(self): super().__init__() self.title("界面切换测试程序") # 给界面添加一个标题 self.geometry("544x344+400+200") # 定义界面尺寸 # (0, 0) # 定义界面窗口大小不可改变 # 调用常用变量 self.setup_main_gui() def setup_main_gui(self): # 给界面设置一个主题 self.style = Style(theme="flatly") # 创建一个界面标题 self.label_title = Label(self, text="多界面切换测试程序", font="微软雅黑 20 bold", relief="groove") self.label_title.place(relwidth=1, relheight=0.18, relx=0, rely=0) # 创建左侧按钮显示区域 self.Pane_left = PanedWindow(self, relief="groove") self.Pane_left.place(relwidth=0.15, relheight=0.82, relx=0, rely=0.18) # 创建界面01控制按钮 self.button_frame01 = Button(self.Pane_left, text="界面一", font="微软雅黑 12 bold", command=self.createframe01) self.button_frame01.place(relwidth=1, relheight=0.08, relx=0, rely=0.2) # 创建界面02控制按钮 self.button_frame02 = Button(self.Pane_left, text="界面二", font="微软雅黑 12 bold", command=self.createframe02) self.button_frame02.place(relwidth=1, relheight=0.08, relx=0, rely=0.5) # 创建界面03控制按钮 self.button_frame03 = Button(self.Pane_left, text="界面三", font="微软雅黑 12 bold", command=self.createframe03) self.button_frame03.place(relwidth=1, relheight=0.08, relx=0, rely=0.8) def setup_frame01(self): self.frame01 = Frame(self, relief="groove") self.frame01.place(relwidth=0.84, relheight=0.82, relx=0.16, rely=0.18) self.label_01 = Label(self.frame01, text="界面显示一", font="微软雅黑 12 bold", bg="green") self.label_01.place(relwidth=1, relheight=1, relx=0, rely=0) def setup_frame02(self): self.frame02 = Frame(self, relief="groove") self.frame02.place(relwidth=0.84, relheight=0.82, relx=0.16, rely=0.18) self.label_02 = Label(self.frame02, text="界面显示二", font="微软雅黑 12 bold", bg="red") self.label_02.place(relwidth=1, relheight=1, relx=0, rely=0) def setup_frame03(self): self.frame03 = Frame(self, relief="groove") self.frame03.place(relwidth=0.84, relheight=0.82, relx=0.16, rely=0.18) self.label_03 = Label(self.frame03, text="界面显示三", font="微软雅黑 12 bold", bg="blue") self.label_03.place(relwidth=1, relheight=1, relx=0, rely=0) def createframe01(self): try: self.frame01.destroy() except: pass finally: try: self.frame02.destroy() except: pass finally: try: self.frame03.destroy() except: pass finally: self.setup_frame01() def createframe02(self): try: self.frame01.destroy() except: pass finally: try: self.frame02.destroy() except: pass finally: try: self.frame03.destroy() except: pass finally: self.setup_frame02() def createframe03(self): try: self.frame01.destroy() except: pass finally: try: self.frame02.destroy() except: pass finally: try: self.frame03.destroy() except: pass finally: self.setup_frame03() if __name__ == "__main__": windows = MainWindows() windows.mainloop()