python tkinter多個軟件界面切換功能實現(xiàn)
小程序的實現(xiàn)采用python中的tkinter創(chuàng)建主窗口,切換窗口采用tkinter模塊的的frame窗口控件進行創(chuàng)建,通過不同的按鍵調(diào)用顯示不同的操作界面。操作界面的顯示使用try…except…finally進行顯示。思路:在tkinter中想要實現(xiàn)多個界面的切換,需要創(chuàng)建多個frame,而當frame01切換至frame02或frame03時,需要將當前的顯示界面進行關(guān)閉,再顯示其他的窗口。假設在程序編寫過程中,程序主要在界面frame01中進行實現(xiàn),沒有在界面frame02、frame03中進行實現(xiàn),按鈕控件調(diào)用frame02 、frame03時軟件就會報錯,因此程序中采用try…except來處理程序運行異常。因此開始程序書寫如下:
try:
frame1.destroy()
frame2.destroy()
frame3.destroy()
except:
pass
但是在此程序中,如果frame01不存在,程序直行道frame01,程序即運行停止,不會執(zhí)行后面的程序。因此在程序中采用try…except…finally來執(zhí)行程序,這樣不管前面的是否報錯,最后都會執(zhí)行finally后面的代碼。
-
多界面代碼實現(xiàn)如下 ;
實現(xiàn)程序如下:
import tkinter
from tkinter import *
from ttkbootstrap import *
class MainWindows(Tk):
def __init__(self):
super().__init__()
self.title("界面切換測試程序") # 給界面添加一個標題
self.geometry("544x344+400+200") # 定義界面尺寸
# self.resizable(0, 0) # 定義界面窗口大小不可改變
# 調(diào)用常用變量
self.setup_main_gui()
def setup_main_gui(self):
# 給界面設置一個主題
self.style = Style(theme="flatly")
# 創(chuàng)建一個界面標題
self.label_title = Label(self, text="多界面切換測試程序", font="微軟雅黑 20 bold", relief="groove")
self.label_title.place(relwidth=1, relheight=0.18, relx=0, rely=0)
# 創(chuàng)建左側(cè)按鈕顯示區(qū)域
self.Pane_left = PanedWindow(self, relief="groove")
self.Pane_left.place(relwidth=0.15, relheight=0.82, relx=0, rely=0.18)
# 創(chuàng)建界面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)
# 創(chuàng)建界面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)
# 創(chuàng)建界面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()
視頻功能實現(xiàn)查看地址https://live.csdn.net/v/350830文章來源:http://www.zghlxwxcb.cn/news/detail-815276.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-815276.html
到了這里,關(guān)于python tkinter多個軟件界面切換功能實現(xiàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!