用Tkinter打造GUI开发工具(3) Tkinter的小部件类

用Tkinter打造GUI开发工具(3) Tkinter的小部件类
从前面Tkinter的结构图可以看出,Tkinter的小部件都继承于Widget类。
Widget类的基类有BaseWidget类、Pack类、Place类、Grid类等。下面给出Widget类定义的代码。

class Widget(BaseWidget, Pack, Place, Grid):
    """Internal class.

    Base class for a widget which can be positioned with the geometry managers
    Pack, Place or Grid."""
    Pass

Widget类实际上只起封装BaseWidget类、Pack类、Place类、Grid类的作用,本身没有产生新方法。BaseWidget类又基于Misc类。
Pack类、Place类、Grid类用于管理小部件的放置方法。
Widget类基类包含BaseWidget类、Pack类、Place类、Grid类。
XView类和YView类用于关联Scrollbar部件的操作。
下面我们给出Tkinter的类定义。

class Misc
class Wm
class Tk(Misc, Wm)
class BaseWidget(Misc)
class Toplevel(BaseWidget, Wm)
class XView
class YView
class Pack
class Place
class Grid
class Widget(BaseWidget, Pack, Place, Grid)
class Frame(Widget)
class Button(Widget)
class Label(Widget)
class Checkbutton(Widget)
class Menu(Widget) 
class Menubutton(Widget)
class Message(Widget)
class Radiobutton(Widget)
class Scale(Widget)
class Scrollbar(Widget)
class LabelFrame(Widget)
class PanedWindow(Widget)
class Entry(Widget, XView)
class Spinbox(Widget, XView)
class Text(Widget, XView, YView)
class Canvas(Widget, XView, YView)
class Listbox(Widget, XView, YView)

Tkinter的部分小部件,除了继承Widget类外,还继承了XView类和YView类。

例如Text类,class Text(Widget, XView, YView)。

通过学习,我们可以掌握Tkinter的工作原理,部件之间的继承关系。今后掌握Tkinter编写程序大有帮助。
既然明白了Tkinter的工作原理,Tk主窗口主要是管理Tkinter应用程序,不用实例化Tk类,仍然可以创建Tkinter应用程序,只是我们没有更多的管理方法可用而已。
下面给出一个只有3行语句的Tkinter应用程序。

import tkinter as tk
label=tk.Label(text='这是Label测试\n最短的 Tkinter程序').pack()
tk.mainloop()

程序运行后会产生一个Tkinter窗口。
在这里插入图片描述
通过学习,对Tkinter有大致的了解。后面我们通过实例,详细介绍Tkinter部件的程序设计。

猜你喜欢

转载自blog.csdn.net/hepu8/article/details/88388314