原文: http://zetcode.com/gui/tcltktutorial/introduction/

在 Tcl/Tk 教程的这一部分中,我们将介绍 Tk 工具包并创建我们的第一个程序。

本教程的目的是帮助您开始使用 Tcl 语言的 Tk 工具包。 可以在此处下载本教程中使用的图像。 我使用了 Gnome 项目的 Tango 图标包中的一些图标。

Tk

Tk 是一个开源的,跨平台的小部件工具包,它提供了用于构建图形用户界面(GUI)的基本元素库。 Tk 于 1991 年首次公开发行。Tk 是 Tcl 语言的扩展。 这意味着 Tk 通过用于构建用户界面的其他命令扩展了 Tcl 语言。 有几种其他语言的绑定,包括 Ada,Perl,Ruby,Python 或 Common Lisp。 Tk 库通常以其主要语言称为 Tcl/Tk。

Tcl

Tcl 是基于字符串的脚本语言。 源代码被编译成字节码,然后由 Tcl 解释器解释。 它由 John Osterhout 于 1988 年创建。其目的是创建一种易于嵌入到应用中的语言。 但通常在其原始区域之外使用。 该语言通常用于快速原型,脚本应用,GUI 或测试。 Tcl 代表工具命令语言,其中 Tcl 脚本的源代码由命令组成。

Tcl 是一种过程语言。 它具有一些函数式特征。 计划在下一个正式版本中提供 OOP 支持。

Tcl 和 Tk 的官方网站是 tcl.tk

简单的例子

在第一个示例中,我们将在屏幕上显示一个基本窗口。

  1. #!/usr/bin/wish
  2. frame .fr
  3. wm title . Simple
  4. wm geometry . 250x150+300+300

尽管这段代码很小,但是应用窗口可以做很多事情。 可以调整大小,最大化或最小化。 随之而来的所有复杂性对应用员都是隐藏的。

  1. #!/usr/bin/wish

wish是 Tcl/Tk 解释器。 它了解 Tcl 和 Tk 命令。

  1. frame .fr

frame小部件已创建。 框架是创建框架小部件的 Tk 命令。 该命令的参数是小部件路径名。 小部件路径名以点字符开头。 此字符代表主应用窗口。 在 Tk 中,小部件形成一个层次结构。 .fr表示框架小部件位于主应用窗口内。 窗口小部件路径是一个以点开头的字符串,由多个以点分隔的名称组成。 这些名称是组成窗口小部件层次的窗口小部件名称。

  1. wm title . Simple

wm命令用于与窗口管理器进行交互。 此代码行设置窗口标题。

  1. wm geometry . 250x150+300+300

在这里,我们设置窗口的大小并将其放置在屏幕上。 前两个数字指定窗口的宽度和高度。 第三个和第四个参数是监视器屏幕上的 x,y 坐标。

Tcl/Tk 简介 - 图1

图:简单 window

居中窗口

该脚本使屏幕上的窗口居中。

  1. #!/usr/bin/wish
  2. # ZetCode Tcl/Tk tutorial
  3. #
  4. # In this script, we center a window
  5. # on the screen.
  6. #
  7. # author: Jan Bodnar
  8. # last modified: March 2011
  9. # website: www.zetcode.com
  10. set width 250
  11. set height 150
  12. set x [expr { ( [winfo vrootwidth .] - $width ) / 2 }]
  13. set y [expr { ( [winfo vrootheight .] - $height ) / 2 }]
  14. wm title . "Center"
  15. wm geometry . ${width}x${height}+${x}+${y}

我们需要有窗口的大小和屏幕的大小,才能将窗口放置在监视器屏幕的中央。

  1. set width 250
  2. set height 150

这些是应用窗口的宽度和高度值。

  1. set x [expr { ( [winfo vrootwidth .] - $width ) / 2 }]
  2. set y [expr { ( [winfo vrootheight .] - $height ) / 2 }]

给定其宽度和高度,我们确定居中窗口的xy坐标。

  1. wm geometry . ${width}x${height}+${x}+${y}

窗口被放置在屏幕上。

退出按钮

在本节的最后一个示例中,我们将创建一个退出按钮。 当我们按下此按钮时,应用终止。

  1. #!/usr/bin/wish
  2. # ZetCode Tcl/Tk tutorial
  3. #
  4. # This program creates a quit
  5. # button. When we press the button,
  6. # the application terminates.
  7. #
  8. # author: Jan Bodnar
  9. # last modified: March 2011
  10. # website: www.zetcode.com
  11. button .hello -text "Quit" -command { exit }
  12. place .hello -x 50 -y 50
  13. wm title . "Quit button"
  14. wm geometry . 250x150+300+300

我们在窗口上放置一个button。 单击该按钮将终止该应用。

  1. button .hello -text "Quit" -command { exit }

button小部件已创建。 按钮的标签随-text选项一起提供。 -command选项指定按下按钮时要执行的过程。 在我们的情况下,应用使用内置的exit命令终止。

  1. place .hello -x 50 -y 50

我们使用place几何图形管理器将按钮定位在绝对坐标中。 从根窗口的左上角起50x50px

Tcl/Tk 简介 - 图2

图:退出按钮

参考

wikipedia.orgtcl.tk 用于创建本教程。

本节是对 Tcl/Tk 的介绍。