tkinter包(“Tk接口”)是Tk GUI工具箱的标准Python接口。Tk和tkinter在大多数Unix平台以及Windows系统上都可用(Tk本身不是Python的一部分),用于构建主流的桌面图形用户界面。
在命令行中运行 python -m tkinter,应该会弹出一个Tk界面的窗口,表明 tkinter 包已经正确安装,而且告诉你 Tcl/Tk 的版本号,当前最新版本8.6。
要使用 Tkinter 通常你只需要一条简单的 import 语句:import tkinter,或者from tkinter import *。
1.Tk概念
了解Tk需要了解的三个基本概念:Widgets(小部件)、Geometry Management(几何管理)和Event Handling(事件处理)。
1.1 Widgets(小部件)
小部件通常被称为“控件”,您有时也会看到它们被称为“窗口”。
创建Widgets:每个单独的小部件都是一个Python对象。实例化小部件时,必须将其父级作为参数传递给小部件类。唯一的例外是“根”窗口,它是包含其他所有内容的顶级窗口。它是在实例化Tk时自动创建的。它没有父级。例如:
root = Tk()
content = ttk.Frame(root)
button = ttk.Button(content)
配置选项:所有小部件都有几个配置选项。这些配置选项用来控制小部件的显示方式或行为方式。当第一次创建小部件时,可以通过将其名称和值指定为可选参数来设置配置选项。稍后,您可以检索这些选项的当前值,并在有少量异常的情况下随时更改它们。如果您不确定小部件支持什么配置选项,您可以要求小部件描述它们。
示例最有用的是第一个,它是选项的名称,第五个,它是选项的当前值。第四个是选项的默认值,或者换句话说,如果不更改它,它将具有的值。另外两个与选项数据库有关。第二项是数据库中选项的名称,第三项是它的类。
winfo_*信息:Tk公开了应用程序可以利用的每个小部件的信息宝库。大部分信息可通过winfo设施获取。下面是一些重要的winfo_*信息。
winfo_class:
a class identifying the type of widget, e.g. TButton for a themed button
winfo_children:
a list of widgets that are the direct children of a widget in the hierarchy
winfo_parent:
parent of the widget in the hierarchy
winfo_toplevel:
the toplevel window containing this widget
winfo_width, winfo_height:
current width and height of the widget; not accurate until appears onscreen
winfo_reqwidth, winfo_reqheight:
the width and height the widget requests of the geometry manager (more on this shortly)
winfo_x, winfo_y:
the position of the top-left corner of the widget relative to its parent
winfo_rootx, winfo_rooty:
the position of the top-left corner of the widget relative to the entire screen
winfo_vieweable:
whether the widget is displayed or hidden (all its ancestors in the hierarchy must be viewable for it to be viewable)
1.2 Geometry Management(几何管理)
网友评论