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