tkinter翻頁實作
最簡單的tkinter模組中
只需要三行就可以開一個視窗
import Tkinter as tk
root = tk.Tk()
root.mainloop()
第一行是匯入tkinter模組並且取個小名
第二行是開一個視窗並且存在root當作最基底的變數
第三行用mainloop保持視窗開啟, 不會執行一下就關掉
今天為了設計不同的視窗並且達成翻頁的功能, 讓我們來看看不同的寫作方法
import Tkinter as tk
class firstpage(tk.Frame):
def __init__(self, master=None):
mw=tk.Tk()
tk.Frame.__init__(self, master=mw)
app = firstpage()
app.mainloop()
為了設計不同的頁面採用class的寫作方法
卻不小心把tk.Tk()包進class中
結果mainloop一直跑的是主頁
這會導致開第二頁的時候主頁關不起來
至於為什麼Frame在class內要init在root就不用
不要問我, 我也不知道
# -*- coding: utf-8 -*-
import Tkinter as tk
root = tk.Tk()
class mainpage(object):
def __init__(self, master=None):
self.root = master
self.page = tk.Frame(self.root)
self.page.pack()
self.Button = tk.Button(self.page, text=u'跳頁',command=self.secpage)
self.Button.grid(column=0,row=0)
def secpage(self):
self.page.destroy()
secondpage(self.root)
class secondpage(object):
def __init__(self, master=None):
self.root = master
self.page = tk.Frame(self.root)
self.page.pack()
self.Button = tk.Button(self.page, text=u'主頁',command=self.mainpage)
self.Button.grid(column=0,row=0)
def mainpage(self):
self.page.destroy()
mainpage(self.root)
mainpage(root)
root.mainloop()
上面這一段完成了可以互相跳轉的兩個頁面
注意root = tk.Tk()是在class外的
這樣destroy就可以確實的破壞原來的頁面
大guy是者樣
留言
張貼留言