在这部分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
我们委托的initUI()
方法创建的用户界面。
root.geometry("450x350+300+300")
中心屏幕上的一个窗口。
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()