Tcl/Tk编程打造HyperWorks目录树结构管理利器

Tcl/Tk开发HyperWork目录树

HyperWork的二次开发主要是HyperMesh(前处理)和HyperView(后处理的开发),用到的语言是Tcl/Tk和大量的API函数,HyperMesh和HyperView的二次开发形式多样,在HyperMesh里面比较简单的是利用宏文件开发按钮,然后利用按钮实现一系列的功能,当然虽然只是简单的按钮,却也可以实现很强大的功能,甚至是整个完整的分析过程。还有一种是利用Process Studio开发流程树。


除了自带的这个开发工具,Tk本身也可以直接开发具有目录树结构的系统,主要用到treeview组件,下面就以一个简单的例子实现这个功能。

set title "Example"

set alltabs [hm_framework getalltabs]

#创建一个frame

set f [frame .fr -padx 5 -pady 5]

#添加一个tab,名称为Example

hm_framework addtab "$title" $f 358

#创建treeview组件

#然后根据需要添加节点,一个节点即时一个入口

#可以在该入口进行进程绑定,实现一系列的功能

#每个节点有一个独特的id,该id用于识别该节点,可以随意命名

ttk::treeview $f.tree

#end 表示节点的位置,可以用数字表示,也可以用end表示,也就是在结尾处

$f.tree insert {} end -id root -text "contents"

$f.tree insert root end -id node1 -text "chapter 1"

$f.tree insert node1 end -id node11 -text "1-1section"

$f.tree insert node1 end -id node12 -text "1-2section"

$f.tree insert node1 end -id node13 -text "1-3section"

$f.tree insert root end -id node2 -text "chapter 2"

$f.tree insert node2 end -id node21 -text "2-1section"

$f.tree insert node2 end -id node22 -text "2-2section"

$f.tree insert node2 end -id node23 -text "2-3section"

$f.tree insert root end -id node3 -text "chapter 3"

$f.tree insert node3 end -id node31 -text "3-1section"

$f.tree insert node3 end -id node32 -text "3-2section"

$f.tree insert node3 end -id node33 -text "3-3section"

$f.tree insert root end -id node4 -text "Summary"

#利用tag和tag bind进行进程绑定,后面的进程自定义,一旦点击该节点即允许该进程

$f.tree item node11 -tags {"1-1section"}

$f.tree tag bind "1-1section" <ButtonPress-1> {Proc1_1}

$f.tree item node12 -tags {"1-2section"}

$f.tree tag bind "1-2section" <ButtonPress-1> {Proc1_2}

$f.tree item node13 -tags {"1-3section"}

$f.tree tag bind "1-3section" <ButtonPress-1> {Proc1_3}

pack $f.tree -side left -anchor w -fill both

pack $f

#下面定义几个进程

#进程均只有一条命令,通过HyperMesh的API函数弹出对应的panel

proc Proc1_1 {} {

      hm_setpanelproc {hm_callpanel "lines"}

}

proc Proc1_2 {} {

      hm_setpanelproc {hm_callpanel "surfaces"}

}

proc Proc1_3 {} {

      hm_setpanelproc {hm_callpanel "solids"}

}

脚本完成后放在工作目录下,运行后即可看到如下,完成了一个目录树的程序,并且给其中的三个节点绑定了进程,分别弹出lines,surfaces和solids面板。


1.png


图1

点击1-1section后,弹出如下所示的面板:

2.png

图2

同样的,点击1-2section弹出的面板如下:

3.png

图3

点击1-3section弹出的面板如下:

4.png

图4


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空