主要是为了给公司做一个windows下面的应用程序,为了适应快速开发的要求,没必要再按照gtk用C去搞一遍了,虽然本人比较擅长用C,所以,之前有了解过tk也可以做windwos桌面应用程序,因此,就打算入手这个了
(1):安装编译器
学习任何一门计算机语言,那么首先肯定是先下载一个编译器对吧,我选择的这个tcl语言的解析器,既tclsh,我在windows下面学习的tcl语言,因此选择了ActiveTcl这个跨平台的编译工具,下载地址是:www.tcl.tk,千万不要去什么csdn网站有人上传的还要10个积分的下载点取下载,那个不是最新的,而且说实话太坑了,上图
tcl/tk学习笔记 《一》 tcl/tk概览第一部分
tcl/tk学习笔记 《一》 tcl/tk概览第一部分
tcl/tk学习笔记 《一》 tcl/tk概览第一部分


直接下载就行了,下载完成以后,你在你的D盘自己命名一个目录,比如我的是D/TclTk目录,然后双击那个tcl-x.x.x-installl-xxx.msi的文件,随后让你选择是否同意某个协议的时候,一定要点击那个“advance”, 然后安装到你制定的目录即可,我觉得这个地方,只要是你已经看到这篇文章的人,都是会知道这个怎么安装的,我这里就不再叙述的那么捞到了, 下面是安装好之后,文件夹的目录
tcl/tk学习笔记 《一》 tcl/tk概览第一部分tcl/tk学习笔记 《一》 tcl/tk概览第一部分

(2) 启动方式
        第一种启动方式如下
                   tcl/tk学习笔记 《一》 tcl/tk概览第一部分
                tcl/tk学习笔记 《一》 tcl/tk概览第一部分
              第二种:设置环境变量
                1 : 右击“计算机” --> 高级系统设置   --> 环境变量   
                2 :: 找到系统变量中的Path变量,点击“编辑”然后在变量值后面输入“;D:\TclTk\bin”
tcl/tk学习笔记 《一》 tcl/tk概览第一部分
                
               然后,找到你的cmd程序,输入“tclsh”,如下,就说明安装成功了
tcl/tk学习笔记 《一》 tcl/tk概览第一部分
                tcl/tk学习笔记 《一》 tcl/tk概览第一部分
                 撸一下这个编译器
                tcl/tk学习笔记 《一》 tcl/tk概览第一部分tcl/tk学习笔记 《一》 tcl/tk概览第一部分
                       
   (3) TK版 “Hello, World”
                TK 是tcl的一个扩展,Tk的命令用于创建图形用户界面,这个Wish(windows shell)的应用程序,这个东西就是包含了Tk定义的命令了。你直接在cmd命令视窗输入“wish”, 你就打开了这个shell,像下面这样
            tcl/tk学习笔记 《一》 tcl/tk概览第一部分tcl/tk学习笔记 《一》 tcl/tk概览第一部分
                
               当然,如果你直接在tclsh这个shell里面直接输入“wish”也可以,总之,它很宽容
                 再不然,你还可以按照下面的做法
                tcl/tk学习笔记 《一》 tcl/tk概览第一部分
               tcl/tk学习笔记 《一》 tcl/tk概览第一部分
                然后你的这个tclsh里面也可以使用这个tk扩展里面的命令了,那你该问了,我不写那个“package require Tk”这句话行不?虽然这玩意看起来特别像python脚本里面的加载包的做法, 好吧,我想说,不可以,你后面就知道为啥了,不信你试试
                 
              好吧,弄一个窗口出来看看,这个wish里面的TK能干啥,其实我是上面那个图已经弄了,是下面这句代码
            button .b -text "hello, world"  -command exit
            grid .b

            如果已经搞过linux下shell编程的同学,熟悉find命令的同学,大家应该就很熟悉上面的那个button的指令,计算机语言千百遍,其实大家都相差不了多少,find命令如下

命令格式:
       find  pathname -options [-print -exec  -ok ...]
              pathname  是目录
              -option : 是各种各样的命令选项,他后面会带上参数
                       比如 : 
                        -name  file.txt   : 查找这个名字是file.txt的文件
                        -user    ldroot   : 查找这个用户的文件
                        etc   ......
              最后三个是三个指令,你任意选择一个
              -print :  查询到的结果输出到stdout
              -exec : 后面跟着shell命令
              -OK : 跟exec一样,只是用安全模式执行
 

  好了,那这个button,其实我想很多人看完 find指令之后,应该就有所了解了,好,现在讲一下
  这个TK呢就相当于是是linux下面的shell一样,这个shell说白了,就是一个容器,你进入到这个容器里面,它里面有很多的工具,让你使唤,你能拿到斧头,拿到棒槌,拿到镰刀,总之,你能拿到你想拿到的很多东西,linux下面的shell里面,有find,dif,  grep,  date等等各种各样的即使执行指令,同样的,这个TK也是一个shell, 他当然里面也有各种各样的指令,要不然为啥也叫shell呢,对吧
  好吧,我不废话了 ,扯的有点远,估计该有人嫌我啰嗦了
  这个button和grid就是这个TK的shell里面的两个工具,下面画个图,解析一下这个button指令
  tcl/tk学习笔记 《一》 tcl/tk概览第一部分
            tcl/tk学习笔记 《一》 tcl/tk概览第一部分
              说到这里,就不得不说这个组件到底是到底是咋回事了
              这个组建你可以这么想,你一打开这个TK之后,首先就是一个主窗口,主窗口里面你可以填很多按钮,菜单,滚动条等等,你放到这个主主窗口上,这个主窗口的名字是“.”,所以你写的时候是“.b”, 如果你写了".a.b" , 那就是在“.”这个主窗口里面有个叫“a”的组件,并且在“a”的组件上有个叫“b”的组件, 就是说它是分层,层层叠加,这个其实就跟那个find命令基本上类似,find命令的路径是“/” , 而这个组件是“.”分割的
            tcl/tk学习笔记 《一》 tcl/tk概览第一部分tcl/tk学习笔记 《一》 tcl/tk概览第一部分
               至于这个grid就是一个画图器,为啥要这么搞呢:面向对象
               这个button等等的类似的组建,有很多的的组件指令,他们负责把组建的属性设置好,然后专门有一个对象去把他们画出来,要不然的话,如果每个组建都有一个画图的属性的话,那每个组建的实现起来岂不是很麻烦,每个组建相当于都要写一个画图器
               tcl/tk学习笔记 《一》 tcl/tk概览第一部分tcl/tk学习笔记 《一》 tcl/tk概览第一部分
               
               
(4) 脚本文件
          我这里就是主要写的windows下面的执行方式
          windows下面执行一个脚本有两个方式
           一 : 关联文件方法,如下图,右击tcl文件,属性,找到常规,把打开方式设置成这个wish.exe
                  tcl/tk学习笔记 《一》 tcl/tk概览第一部分
               tcl/tk学习笔记 《一》 tcl/tk概览第一部分
               二 : cmd里面打开,如下图,你直接切换到那个文件的目录下,然后wish  后面紧接着那个文件名就OK了
                        tcl/tk学习笔记 《一》 tcl/tk概览第一部分
                  tcl/tk学习笔记 《一》 tcl/tk概览第一部分

(5) 变量(粗略看一下)
          tcl变量其实跟shell脚本/lua脚本的变量设置差不多
          变量里面储存这个数值 : set   a  44
                    取出来这个值 : $a
          tcl/tk学习笔记 《一》 tcl/tk概览第一部分tcl/tk学习笔记 《一》 tcl/tk概览第一部分
         
                 把一个命令赋值给一个变量
                tcl/tk学习笔记 《一》 tcl/tk概览第一部分tcl/tk学习笔记 《一》 tcl/tk概览第一部分
好吧,其实还有很多东西没写完,这两天要分析一下这个解析器,解析循环的原理,所以下一次分享概览的第二部分,循环和过程以及tcl/tk其他能做的东西  


                      

相关文章: