Tk 小部件概述

Tk 小部件概述

Tk-based应用的基本组件被称为小部件。由于在Tk中,”window”和”widget”经常互换使用,因此有时也将组件称为窗口。Tk是一个提供了丰富的图形组件的包,用于使用Tcl创建图形应用程序。

Tk提供了一系列的小部件,从基本的GUI小部件,如按钮和菜单,到数据显示小部件。这些小部件非常可配置,因为它们具有默认配置,使其易于使用。

Tk应用程序遵循小部件层次结构,其中任意数量的小部件可以放置在另一个小部件中,而这些小部件又放置在另一个小部件中。Tk程序中的主要小部件被称为根小部件,可以通过创建TkRoot类的新实例来创建。

创建小部件

创建小部件的语法如下所示。

type variableName arguments options

这里的类型指的是像按钮、标签等小部件的类型。根据每个小部件的语法,参数可以是可选的或必需的。选项的范围从大小到每个组件的格式设置。

小部件命名规范

小部件使用类似于命名包的结构。在Tk中,根窗口用一个句点(.)和窗口中的一个元素命名,例如按钮命名为.myButton1。变量名应以小写字母、数字或标点符号(除了句点)开头。在第一个字符之后,其他字符可以是大写或小写字母、数字或标点符号(除了句点)。建议使用小写字母开头标签。

颜色命名规范

颜色可以使用红、绿等名称声明。也可以使用用#表示的十六进制。十六进制位数可以是3、6、9或12。

尺寸约定

默认单位是像素,在我们不指定尺寸时使用。其他尺寸单位有i表示英寸,m表示毫米,c表示厘米,p表示点。

常见选项

所有小部件都有许多常见选项可用,并在以下表格中列出。

Sr.No. 语法和描述
1 -background color 用于设置部件的背景颜色。
2 -borderwidth width 用于绘制带有3D效果的边框。
3 -font fontDescriptor 用于设置部件的字体。
4 -foreground color 用于设置部件的前景色。
5 -height number 用于设置部件的高度。
6 -highlightbackground color 用于设置在部件没有输入焦点时绘制的矩形颜色。
7 -highlightcolor color 用于设置在部件有输入焦点时绘制的矩形颜色。
8 -padx number 设置部件的padx。
9 -pady number 设置部件的pady。
10 -relief condition 设置此部件的3D效果。条件可以是raised、sunken、flat、ridge、solid或groove。
11 -text text 设置部件的文本。
12 -textvariable varName 与部件相关联的变量。当部件的文本更改时,该变量将设置为部件的文本。
13 -width number 设置部件的宽度。

下面展示了一个关于选项的简单示例。

#!/usr/bin/wish

grid [label .myLabel -background red -text "Hello World" -relief ridge -borderwidth 3]
   -padx 100 -pady 100

当我们运行以上程序时,将会得到以下输出。

Tk 小部件概述

下面是可用小部件的列表

基本小部件

序号 组件及描述
1 标签Label 用于显示单行文本的组件。
2 按钮Button 可点击并触发操作的组件。
3 输入框Entry 用于接受单行文本输入的组件。
4 消息框Message 用于显示多行文本的组件。
5 文本框Text 用于显示和可选编辑多行文本的组件。
6 顶级窗口Toplevel 包含由窗口管理器提供的所有边框和装饰的窗口。

布局小部件

序号 小部件及描述
1 框架(Frame) 容器小部件,用于容纳其他小部件。
2 定位(Place) 小部件,通过原点的坐标和精确的大小,在特定位置容纳其他小部件。
3 整理(Pack) 简单的小部件,用于在放置在父小部件之前将小部件组织成块。
4 网格(Grid) 小部件,用于以不同的方向嵌套包装小部件。

选择小部件

序号 小工具和说明
1 单选按钮Radiobutton 一组具有开/关按钮和标签的小部件,其中可以选择其中之一。
2 复选框Checkbutton 一组具有开/关按钮和标签的小部件,其中可以选择多个。
3 菜单Menu 充当菜单项的容器的小部件。
4 列表框Listbox 显示一组单元格的小部件,其中可以选择一个或多个。

超级小部件

编号 控件及描述
1 Dialog对话框控件,用于显示对话框。
2 Spinbox控件,允许用户选择数字。
3 Combobox控件,将输入框和可供选择的选项列表结合在一起。
4 Notebook控件,带有索引标签的选项卡控件,用于在多个页面之间切换。
5 Progressbar控件,用于提供长时间操作(如文件上传)的可视化进度反馈。
6 Treeview控件,以树形显示并浏览层次结构的项目。
7 Scrollbar控件,用于没有文本或画布的滚动功能控件。
8 Scale控件,通过滑块选择数值。

其他小部件

序号 小部件及描述
1 画布Canvas 用于显示图形和图像的绘图小部件。

我们将在接下来的章节中介绍每一个小部件。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程