WEB开发网
开发学院操作系统Linux/Unix 使用 Tcl 来组织桌面 阅读

使用 Tcl 来组织桌面

 2008-11-13 08:29:26 来源:WEB开发网   
核心提示: 这段代码中存在一些假像,即将长代码行划分为较短的代码行,使用 Tcl 来组织桌面(6),但是您可以看到,Tcl/Tk 是一种非常简洁的语言,当按下这些键时需要执行一个特殊的过程,像 Tcl/Tk 这样,允许您使用这么少的代码行创建如此复杂的 GUI 程序的编程语言并不多见, 主窗口除了用来

这段代码中存在一些假像,即将长代码行划分为较短的代码行,但是您可以看到,Tcl/Tk 是一种非常简洁的语言。允许您使用这么少的代码行创建如此复杂的 GUI 程序的编程语言并不多见。

主窗口

除了用来运行解释器的常规的 #! 代码之外,还设置了一些变量:cflag 用来控制主数据条目小部件 .display 如何搜集相应的字符,而 nextkey 则是在构建键数组时所使用的索引。然后,与前一个程序相同,设置窗口标题文本并禁止用户调整其大小。

在这之后,定义了计算器的 display 小部件。这里有几个内容需要说明一下:与大多数计算器的外观一样,文本通常是右对齐的,所以从控件的右边开始搜集键值,并向左边进行滚动。动词 focus 使 display 获得焦点,所以您可以使用键盘或 GUI 按钮来输入表达式。然后,将代码绑定到按下计算器的 Enter 键时或键盘 Enter 键按下时需要执行的操作,这样就完成了 display 小部件:

#!/usr/bin/wish -f
# 1 -- How should it look?
set cflag 0; set nextkey 0
wm title . "50-Line Calculator"
wm resizable . 0 0
grid [entry .display -textvariable expression -justify right] -columnspan 6
focus .display
bind .display <Return> equals; bind .display <KP_Enter> equals

计算器的小键盘

这段代码动态地构建了计算器小键盘上相应的键,通过 display 中的文本定义了每个按钮,在 C、Pi 和 = 键的情况下,当按下这些键时需要执行一个特殊的过程。像 Tcl/Tk 这样,允许您使用这么少的代码行来定义这么多小部件的 GUI 程序的编程语言并不多见。

foreach row {
 {7 8 9 + - sin(}
 {4 5 6 * / cos(}
 {1 2 3 ( ) tan(}
 {C 0 . = Pi log(}
 } {
 foreach key $row {
  switch -- $key {
      C    {set string {set cflag 1; set expression ""}}
      Pi   {set string pi}      
      =    {set string equals}
      default {set string "press $key"}
  }
  lappend keys [button .[incr nextkey] -text $key -command $string]
 }
 eval grid $keys -sticky we
 set keys [list]
}

上一页  1 2 3 4 5 6 7  下一页

Tags:使用 Tcl 组织

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接