Tkinter介紹

在這部分Tkinter教程中,我們將介紹Tkinter工具包,從而創建我們的第一個項目。

簡單的例子

在我們的第一個例子中,我們將在屏幕上顯示一個基本的窗口。

from Tkinter import Tk,Frame,BOTH
class Example(Frame):
    def __init__(self,parent):
        Frame.__init__(self, parent, background="white")
        self.parent = parent 
        self.initUI()
        
    def initUI(self):
        self.parent.title("Simple")
        self.pack(fill=BOTH,expand=1)
        
def main():
    root = Tk()
    root.geometry("450x350+300+300")
    Myapp = Example(root)
    root.mainloop()
    
if __name__ == "__main__":
    main()

儘管此代碼是非常小的,應用程序窗口,可以做了不少。它可以改變大小,最大化,最小化。

from Tkinter import Tk,Frame,BOTH

在這裏,我們導入傳統知識框架類。第一類是用來創建一個根窗口。後者則是對其他部件的容器。

class Example(Frame):
    def __init__(self,parent):
        Frame.__init__(self, parent, background="white")

我們的例子中的類繼承自框架容器構件。__init__()方法構造方法,我們稱之爲我們繼承類的構造。背景參數指定的框架構件的背景色。

self.parent = parent 

parent是TK根窗口。

我們委託的initUI()方法創建的用戶界面

root.geometry("450x350+300+300")

前兩個參數是窗口的寬度和高度。最後兩個參數是X,Y屏幕座標。


中心窗口

中心屏幕上的一個窗口。

from Tkinter import Tk,Frame,BOTH
class Example(Frame):
    def __init__(self,parent):
        Frame.__init__(self, parent, background="white")
    
        self.parent = parent
        self.parent.title("Centered Window")
        self.pack(fill=BOTH,expand=1)
        self.centerWindow()
    def centerWindow(self):
        w = 290
        h = 150
        
        sw = self.parent.winfo_screenwidth()
        sh = self.parent.winfo_screenheight()
        
        x = (sw - w)/2
        y = (sw - h)/2
        self.parent.geometry('%dx%d+%d+%d' % (w,h,x,y))
        
def main():
    root = Tk()
    app = Example(root)
    root.mainloop()
if __name__ == "__main__":
    main()
    

我們需要有窗口的大小和屏幕尺寸的窗口,在顯示器屏幕的中心位置。

W = 290
H = 150

這些應用程序窗口的寬度和高度值。

SW = self.parent.winfo_screenwidth()
SH = self.parent.winfo_screenheight()

我們確定屏幕的寬度和高度。

X =(SW  -  W)/ 2
Y =(SH  -  H)/ 2

我們計算出所需的x,y座標。

self.parent.geometry('%DX%D + D + D'%(W,H,X,Y))

最後,geometry()方法用來放置在屏幕中心的窗口。

退出按鈕

在本節的最後一個例子,我們將創建一個退出按鈕。當我們按​​下這個按鈕,應用程序終止。

from Tkinter import Tk,BOTH
from ttk import Frame,Button,Style

class Example(Frame):
    def __init__(self,parent):
        Frame.__init__(self, parent)
        
        self.parent = parent
        self.initUI()
    def initUI(self):
        self.parent.title("Quit Button")
        self.style = Style()
        self.style.theme_use("default")
        
        self.pack(fill=BOTH,expand=1)
        
        quitButton = Button(self,text="Quit",command=self.quit)
        quitButton.place(x=50,y=50)
        
def main():
    root = Tk()
    root.geometry("250x150+300+300")
    app = Example(root)
    root.mainloop()  


if __name__ == '__main__':
    main()  


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章