Tk - 控件概述



基于Tk的应用程序的基本组件称为控件(widget)。组件有时也称为窗口,因为在Tk中,“窗口”和“控件”通常可以互换使用。Tk是一个包,它提供了一套丰富的图形组件,用于使用Tcl创建图形应用程序。

Tk提供了一系列控件,范围从按钮和菜单等基本GUI控件到数据显示控件。这些控件高度可配置,因为它们具有默认配置,使用起来非常方便。

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

创建控件

创建控件的语法如下所示。

type variableName arguments options

此处的类型指的是控件类型,例如按钮、标签等等。参数可以是可选的,也可以是必需的,这取决于每个控件的个体语法。选项范围从每个组件的大小到格式。

控件命名约定

控件使用类似于命名包的结构。在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浮雕效果。条件可以是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

运行上述程序后,我们将得到以下输出。

Hello World Options

可用控件的列表如下分类:

基本控件

序号 控件和描述
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(列表框)

显示单元列表的控件,可以选择一个或多个单元。

Mega 控件

序号 控件和描述
1

Dialog(对话框)

用于显示对话框的控件。

2

Spinbox(旋转框)

允许用户选择数字的控件。

3

Combobox(组合框)

将输入框与用户可用的选项列表组合的控件。

4

Notebook(笔记本)

选项卡式控件,有助于使用索引选项卡在多个页面之间切换。

5

Progressbar(进度条)

用于向文件上传等长时间操作的进度提供视觉反馈的控件。

6

Treeview(树形视图)

用于显示和允许浏览树状形式的项层次结构的控件。

7

Scrollbar(滚动条)

没有文本或画布控件的滚动控件。

8

Scale(滑块)

通过滑块选择数值的滑块控件。

其他控件

序号 控件和描述
1

Canvas(画布)

用于显示图形和图像的绘图控件。

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

广告