最近学习python有一段时间,也写了一些小程序,但主要还都是命令行执行的,一直想学习下GUI,考虑到tk的简洁,也能满足一般程序的要求,就决定学习下Tkinter,准备先花一段时间看完Python Tkinter的官方介绍,然后在自己写一些小程序。下面会将Tkinter官方的介绍结合自己的理解翻译成中文,也顺便加深下自己的理解。
from Tkinter import * #导入Tkinter模块
root = Tk() #创建一个根窗口,其余的控件都要在这个窗口上面
w = Label(root, text="Hello, world!") #创建一个Label控件,指定其父控件位创建的根窗口,并在Label上显示 hello worl!
w.pack() #显示label控件,pack方法会让label显示,并根据文本内容自动调节大小
root.mainloop() #让根窗口进入事件循环
$ python hello1.py
会出现下面的结果
程序讲解:
1.我们首先导入Tkinter模块,它包含我们需要使用的一切和Tkinter有关的函数,类和其它相关的东西。
from Tkinter import *
使用此种方式可以将所有东西导入,但同时也会造成名称空间的污染。
2. 为了初始化Tkinter,我们需要先创建一个root控件。他是一个普通的窗口,包含一个标题栏和其他有窗口管理器提供的装饰。
root = Tk()
你只能为每个程序创建一个root控件,且它必须在其它控件被创建前创建。
3.下一步我们创建一个label控件座位root窗口的子控件。
w = Label(root, text="Hello, world!")
w.pack()
Label控件可以显示文本/位图/图像。在这个例子中,我们使用text选项指定我们要显示的文本。
接着,我们对label这个控件使用pack方法,它会让label根据文本自动调整自己的大小并且使自己可见。
然而实际上, 窗口并不会出现,除非我们让Tkinter进入事件循环。
root.mainloop()
这样程序就会一直停留在事件循环里知道我们关闭这个窗口。
事件循环不止处理来自用户(如点击鼠标,按键)或者窗口系统(重新显示)的请求,他同时处理来自Tkinter内部的操作。所有这些操作都是通过几何布局进行管理和更新的。换句话说,应用窗口不会在你进入事件循环之前出现。