第四章Data and Classes
第一节:How to use StringVar()
学习如何将Python GUI的data保存到变量之中
几种tkinter的code
strVar=StringVar() #字符串,默认为空字符串
intVar=IntVar() #整数,默认为0
dbVar=DoubleVar()#浮点数,默认为0.0
blVar=BooleanVar()#布尔值,返回0或False,1或True
打印默认的tkinter变量的值
>>>PY_VAR12
>>>0
返回的是IntVar的默认值0
第二节:How to get data from a widge
(如何捕获变量的Data)
将下面的代码写在前几章创建的GUI中
加在前面模块的最后,mainloop之前
还可以将values的一组值设置在spinbox实例的外面
不管我们如何创建widget以及如何将值嵌入其中,我们都可以通过get()方法获得
get()方法适用于所有widgets
现在我们已经知道如何获取这些data,那么现在我们要使用这些data
第四节:Using module-level global variables
使用模块级别的全局变量
为什么我们要使用全局变量?
因为我们往GUI当中不断的加入各种功能,但是name会越来越混乱
为了避免这个问题,我们选择使用全局变量
返回全局变量42
把usingGlobal()函数写在模块的最底部
我们在使用全局变量,但由于使用的相同的变量名,造成了值的改变
使用global声明全局变量
在声明之后想要再给全局变量赋值则引发一个错误
全局变量比较适合运用在小的应用之中,可以在多种方法和function中使用
但随着我们的代码越来越复杂,加入的功能越来越多,全局变量的使用也会越来越局限
第四节:How coding in classes can improve the GUI
第四节主要讲的是将我们写的越来越复杂的模块改成类
一个模块里可以有很多的类
在我们刚开始写GUI的时候,就写成类
第五节:Writing callback functions
创建了一个面向对象变成的callback方法
函数名的编写使用的是前置下划线,但是这种写法并不推荐使用在python编码中
不容易读取且容易忽视
不推荐这样写
第六节:Creating reusable GUI components
#将tooltip改成一个在其他模块也可以引用的类
# 在一个spinbox加上一个tooltip
tt.createToolTip(self.spin,'This is a spin control!')
#将tooltip加到更多的widget中
tt.createToolTip(nameEntered,'This is a Entry control!')
tt.createToolTip(self.action,'This is a button control!')
tt.createToolTip(self.scr,'This is a ScrolledText control.')
然后在其他的模块引用创建的类
领取专属 10元无门槛券
私享最新 技术干货