Tk - 小部件概述

基于 Tk 的应用程序的基本组件称为小部件。 组件有时也称为窗口,因为在 Tk 中,"窗口"和"窗口小部件"经常互换使用。 Tk 是一个软件包,它提供了一组丰富的图形组件,用于使用 Tcl 创建图形应用程序。

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

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

创建小部件

下面给出了创建小部件的语法。

type variableName arguments options

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

小部件命名约定

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

颜色命名约定

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

尺寸约定

默认单位是像素,当我们没有指定尺寸时使用它。 其他尺寸为 i 代表英寸、m 代表毫米、c 代表厘米、p 代表点。

常用选项

所有小部件都有很多常用选项,下表列出了它们 −

序号 语法和描述
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 浮雕。 状况可以是凸起的、凹陷的、平坦的、脊状的、实心的或凹槽的。

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

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

Hello World 选项

可用小部件列表分类如下 −

基本小部件

序号 小部件和描述
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

用于显示图形和图像的绘图小部件

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