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
当我们运行以上程序时,将会得到以下输出。
下面是可用小部件的列表
基本小部件
序号 | 组件及描述 |
---|---|
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 用于显示图形和图像的绘图小部件。 |
我们将在接下来的章节中介绍每一个小部件。