Python图形界面(自学Python系列笔记-4)(不定期更新)

GUI Graphical User Interfaces

tkinter模块

Python系统配置的标准GUI

采用tkinter模块编写的界面可以在所有主流操作系统上运行

从应用的角度来看,Python中的GUI实际上都是C扩展包的实例。脚本建立按钮和菜单时,最终是和一个C库发生对话;脚本响应用户事件后,最终由一个C库作出回应

名词汇总

canvas组件:canvas意味帆布,油画布,canvas组件用来绘图

如果要开发商业级的GUI项目,学习完基础知识后,还需要研究一下PmwPILTixttk等扩展包,可以节省开发时间,界面更好看

tkinter的结构

tkinter字面意思是PythonTk库进行交互,Tk是一个GUI

实现结构:Python通过tkinter模块与Tk库交流,tkinter设计为一个结合体,其一是用Python编码的tkinter模块包,其二是用C编写的扩展模块_tkinter_tkinterTk库发生交互

创建组件

widget = Label(None, text = ‘hello GUI World’)

第一个参数是父组件对象,将新标签设置其中,这里None表示将新标签设置在该程序的默认顶层窗口。稍后,我们会向该位置传递其他组件的实际位置,并将标签设置在其他组件充当的容器对象内

第二个参数是标签配置选项,是关键字参数,不同的关键字设定不同的内容

root = Tk()

Tk表示程序的主窗口,一般是未设定时的默认组件,注意一些组件生成新的弹出窗口,这些窗口独立于主程序窗口

组件尺寸调整

Label(text = ‘hello world’).pack(expand = YES, fill = BOTH)

expand要求打包几何管理器为组件扩展空间

fill选项用来拉伸组件,使其充满分配的空间

注意fill=BOTHfill=X以及fill=Y的区别

X是水平方向无限拉伸,Y是竖直方向

expand=YES是指需要拉伸,默认是不拉伸的

设置组件选项和窗口标题

from tkinter import *

root = Tk()

widget = Label(root)

widget.config(text = ‘Hello World!’)

widget.pack(side=TOP, expand = YES, fill = BOTH)

root.title(‘hello.py’)

root.mainloop()

添加按钮和回调函数

组件的command选项来记录按钮按下时,回调处理函数的返回位置,即按钮按下时tkinter需要调用的行为

添加用户自定义的回调函数

def hello():

print(‘Hello!’)

sys.exit()

root = Tk()

widget = Button(root)

widget = config(text = ‘Hello World’, command = hello)

widget.pack(side = TOP, expand= YES, fill = Y)

root.title(‘Hello.py’)

root.mainloop()

细节

Label().pack()

创建标签之后,立即调用对象的pack方法安排在屏幕中显示,而label对象只是暂时存在的,由于没有为其分配名字,因此运行完pack方法后,会被GC回收并释放空间

同时注意pack()返回的是空对象,不要pack完了再赋值给一个名字

注意import

版本小于3.0的,from Tkinter import Label

版本大于等于3.0的,from tkinter import Label

 

posted @ 2016-08-02 21:19  寒汀暮雨钓孤舟  阅读(812)  评论(0编辑  收藏  举报