前面我们学习了turtle绘制图形文字的一些用法,这一节主要学习Tkinter。Tkinter是python进行GUI编程的高效工具,类似于VC中的MFC,集成了许多控件,如按钮、标签、菜单、文本框等。前面我们在terminal中用sudo apt-get install python-tk安装了Tkinter,所以在py文件中加上from Tkinter import * (也有的是from tkinter import *),即可使用其中的控件和函数。
1. Tkinter入门
首先,举一个小例子:
#coding=utf-8
from Tkinter import *
def processOk():
print ("OK button is clicked.")
def processCancel():
print ("Cancel button is clicked")
# 创建一个窗口
window = Tk()
# 创建两个按钮
btOk = Button(window,text = "OK", fg = "red", command = processOk)
btCancel = Button(window,text = "cancel", bg = "yellow", command = processCancel)
# 将按钮置在窗口上
btOk.pack()
btCancel.pack()
# 创建一个事件循环,监测事件发生,直到窗口关闭
window.mainloop()
这个例子的运行结果为:
点击OK按钮,会在控制台显示OK button is clicked,点击取消按钮亦是。
1)例子中btOk = Button(window, text = "OK", fg = "red", command = processOk)是创建一个按钮,其中第一个参数,通常是该控件的父容器,这里指的是该button是在window中的;第二个参数是该按钮的显示内容;第三个参数是前景色(对应的bg为背景色,见第二个按钮创建);第四个参数command,是指当鼠标点击这个按钮时触发的事件函数,这里是processOK函数。
2)btOk.pack()是将按钮在window中一行接着一行布局。
3)window.mainloop()这句创建一个事件循环,它会不停的捕捉在window内的事件直到window关闭,如果触发某个函数则执行,如本例中的点击按钮操作。
2. Tkinter的各种GUI控件
这一节介绍几个常见的Tkinter控件,python中叫做widgets。
Button:简单的按钮,用来执行触发操作,如上例;
Canvas:帆布,结构化的图形界面,可以在上面绘制各种图形,进行图形编辑;
Checkbutton:复选框;
Entry:文本编辑区域,类似于MFC中的text field或text box;
Frame:框架,用来包含其他控件,主要用于控