图形用户界面(Graphical User Insterface ,GUI)
让GUI程序启动和运行起来需要以下5个主要步骤。
1.导入Tkinter模块
2.创建一个顶层窗口对象,用于容纳整个GUI应用。
3.在顶层窗口之上(或其中)构建所有的GUI组件(及其功能)
4.通过底层的应用代码将这些GUI组件连接起来。
5.进入主事件循环。
窗口和控件
在GUI编程中,顶层的根窗口包含组成GUI应用的所有小窗口对象,他们可能是文字标签,按钮,列表框等,这些独立的GUI组件称为控件。
事件驱动处理
事件可以包括按钮(及释放),鼠标移动,敲击回车键等。一个GUI应用从开始到结束就是通过整套事件体系来驱动的。这种方式为事件驱动处理。
布局管理器
提供部件的位置,大小参数。当所有组件都摆放好了可以将组件进入到无限循环中,mainloop()。一般这是程序运行的最后一行,当进入到主循环后GUI就从这里开始接管程序的执行,所有其他行为都会通过回调来处理,甚至包括退出应用。当选择File菜单并单击EXit菜单选项,或则直接关闭窗口,就会调用一个回调函数来结束这个GUI应用。
GUI开发利用了python中的默认参数,这些参数是精心挑选出来的,即使没有提供这些值,也不用担心应用程序在屏幕上的显示会有什么问题。
实例
Label控件(标签)
import tkinter
top = tkinter.Tk()
label = tkinter.Label(top, text='hello world')
label.pack()
tkinter.mainloop()
运行结果为:
Button控件
import tkinter
top = tkinter.Tk()
label = tkinter.Button(top, text='hello world',command=top.quit)
label.pack()
tkinter.mainloop()
解析:该按钮有一个额外的参数:tkinter.quit()方法,该参数会给按钮一个回调函数,当按钮被按下并且释放的时候整个程序就会退出。
Label和Button控件
除了控件额外的参数之外,还可以看到Packer的一些参数。fill参数告诉Packer让Quit按钮占据剩余的水平空间,而expand参数则会引导它填充整个水平可视化空间,将按钮拉伸到左右窗口边缘。
import tkinter
top = tkinter.Tk()
label = tkinter.Label(top, text='hello world')
label.pack()
button = tkinter.Button(top, text='quit', command=top.quit, bg='red', fg='white')#bg:按钮的背景颜色,fg字体的颜色
button.pack(fill=tkinter.X, expand=1)
tkinter.mainloop()
Label, Button,Scale控件
这里的Scale控件用于可Lable进行交互,Scale滑块是用来控制中文文字字体大小的工具,滑块的位置越大,字体越大。
from tkinter import *
def resize(ev=None):
label.config(font='Helvetica -%d bold' % scale.get())#设置字体
top = Tk()
top.geometry('250x150')#设置界面的长宽
label = Label(top, text='Hello World', font='Helvetica -12 bold')#设置初始字体大小
label.pack(fill=Y, expand=1)
scale = Scale(top, from_=10, to=40, orient=HORIZONTAL, command=resize)
scale.set(12)
scale.pack(fill=X, expand=1)
quit = Button(top, text='quit', command=top.quit, activeforeground='white', activebackground='red')#点击之前是白色的,单击之后变为红的。
quit.pack()
mainloop()