在用 Tkinter 编程时,根据需要可以有多种方式来建立程序主窗口:

    (1)在应用程序类中创建自己的根窗口,即程序自成体系。代码大致形如:

    (3)将应用程序类定义为框架构件类的子类,即程序就是窗口,窗口就是程序。如:

    在应用程序类的设计中,如果一个构件具有“全局性”,即多个方法都要访问该元素,那 么就需用一个实例变量来存储(引用)这个构件,因为类的实例变量在所有类方法中都可访 问,而局部变量只在某一个方法中可见。

    【程序 8.11】myapp.py

    程序 8.11 定义了类 MyApp,在其构造器 init__中首先创建根窗口 root,然后添加一个 标签和两个按钮。点击按钮 b1 时的回调函数是类 MyApp 中自定义的方法 changeText(功能 是改变标签的文本),点击 b2 时的回调函数是根窗口的内建方法 quit(退出事件循环)。标签 构件必须作为实例变量存储,因为 init 和 changeText 方法都要引用它;而根窗口和两个按 钮在本例中既可以作为实例变量存储,也可以作为局部变量存储。创建各构件并完成布局之 后进入事件循环,等待处理事件。

    作为练习,读者可以用上述第二、三种方式来改写程序 8.11。