在這部分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()