python tkinter多个软件界面切换功能实现
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()