489315174的个人空间 https://blog.eetop.cn/carlliu [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

开发图型界面--TK

已有 352 次阅读| 2023-4-6 18:58 |个人分类:日记|系统分类:芯片设计| tk

tcl 在IC 行业是使用非常广的一个脚本语言,很多EDA tool 也都是支持tcl的,所以tcl tk的学习资料可以找到很多。

像Synopsys的ICC DC CustomCompile Laker FC等等,或验证calibre Ansys的Totem RedHawk以及国产一些EDA tool.tcl/TK开发的脚本很容易集成到EDA工具中.

Tk GUI工具包最初是为TCL脚本语言编写的,现在几乎其他语言都有tk的扩展.

工作中对于一些复杂的command不方便记忆或一些自己开发的一些扩展我们都可以开发简易的GUI来包装下。

比如前面分享的p2p的功能,GUI部分就是TK写的。

下面举个简单的TK实例一个简陋的桌面挂件:

>wish clock.tcl

图片           

图片

                                                                               

#!/usr/bin/env tclsh
package require Tk
proc every {ms body} {eval $body; after $ms [info level 0]}
proc drawhands w {
    $w delete hands    
    set secSinceMidnight [expr {[clock sec]-[clock scan 00:00:00]}]
    foreach divisor {60 3600 43200} length {45 40 30} width {1 3 7} {       
        set angle [expr {$secSinceMidnight * 6.283185 / $divisor}]
        set x [expr {50 + $length * sin($angle)}]       
        set y [expr {50 - $length * cos($angle)}]
        $w create line 50 50 $x $y -width $width -tags hands
        }
}
proc toggle {w1 w2} {    
    if [winfo ismapped $w2] {        
        foreach {w2 w1} [list $w1 $w2] break ;
        # swap    
     }    
     pack forget $w1    
     pack $w2
}
canvas .analog -width 100 -height 100 -bg white
every 1000 {drawhands .analog}
pack .analog
label .digital -textvar ::time -font {Courier 24}
every 1000 {set ::time [clock format [clock sec] -format %H:%M:%S]}
bind . <1> {toggle .analog .digital}




点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 8

    月排名
  • 0

    总排名
  • 4

    关注
  • 112

    粉丝
  • 57

    好友
  • 116

    获赞
  • 49

    评论
  • 1103

    访问数
关闭

站长推荐 上一条 /1 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-27 05:06 , Processed in 0.012903 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部