此部分总结只涉及基本UI布局、按钮点击回调、控件中用户输入内容的获取等,并不涉及键盘事件、鼠标事件的获取等等。
(一)Tkinter的优缺点
Tkinter是Python自带的GUI库,它最好的一个优点就是不用另外装额外
的库拿来就可以用了,而且整个库很小巧,入门简单,这很适合于只想集中精力解决实际问题的人。
如果是作一些简单的界面,Tkinter已经足够胜任。不过对于我来说,它有个致命的缺点就是不支持对png格式文件的显示。其实使用python的p_w_picpath库是可以解析png格式文件的。但我拿一张RGBA8888的png来解析后,在Tkinter的控件上显示不出来,只能逐个象素取出来以RGB的格式绘制到控件上,相当于是把透明度给去掉了。因此,对我来说它已无法胜任我的需求,为此不想在Tkinter上花太多的时间学习,只学到能布置一些简单的控件就行。以后有需要学习深层的再来回顾。
(二)Tkinter程序结构
(1)Tkinter主循环
每个使用Tkinter作UI的程序,必须有且只有一个Tkinter.Tk()作为程序
的根节点(主窗口),此窗口一关闭程序即退出。注:我试过在封装自己的控件时,不小心调用了两次Tkinter.Tk(),在调用第二次时就报奇怪的错误了,所以切记不可以调用两次Tkinter.Tk()。
(2)Tkinter控件的创建
每个Tkinter控件创建时,都需要在第一个参数中传进控件所依附的上层容器,如:
Tkinter.Button(container,text='按钮文案',command=按钮回调)
(3)Tkinter控件的布局
Tkinter里面控件的布局摆放控制接口是集成在每个控件身上的,创建出一个控件后即可调用其带有的布局函数决定它在容器的位置如何摆放,如:
chkbtn_var = Tkinter.BooleanVar() checkbox = Tkinter.Checkbutton(container,text='勾选框文案',variable=chkbtn_var,command=按钮回调) checkbox.pack(side=Tkinter.TOP,fill=Tkinter.X,padx=10,pady=5)