![Tcl/Tk Tutorial](/tcl-tk/images/tcl-tk-mini-logo.jpg)
- Tcl 教程
- Tcl - 首页
- Tcl - 概述
- Tcl - 环境设置
- Tcl - 特殊变量
- Tcl - 基本语法
- Tcl - 命令
- Tcl - 数据类型
- Tcl - 变量
- Tcl - 运算符
- Tcl - 决策
- Tcl - 循环
- Tcl - 数组
- Tcl - 字符串
- Tcl - 列表
- Tcl - 字典
- Tcl - 过程
- Tcl - 包
- Tcl - 命名空间
- Tcl - 文件I/O
- Tcl - 错误处理
- Tcl - 内置函数
- Tcl - 正则表达式
- Tk 教程
- Tk - 概述
- Tk - 环境
- Tk - 特殊变量
- Tk - 控件概述
- Tk - 基本控件
- Tk - 布局控件
- Tk - 选择控件
- Tk - 画布控件
- Tk - Mega 控件
- Tk - 字体
- Tk - 图片
- Tk - 事件
- Tk - 窗口管理器
- Tk - 几何管理器
- Tcl/Tk 有用资源
- Tcl/Tk - 快速指南
- Tcl/Tk - 有用资源
- Tcl/Tk - 讨论
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](/tcl-tk/images/helloWorldOptions.png)
可用控件的列表如下分类:
基本控件
序号 | 控件和描述 |
---|---|
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(画布) 用于显示图形和图像的绘图控件。 |
我们将在接下来的章节中介绍每个控件。