在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 4505|回复: 10

[求助] 求助,这条tk语句怎么才能执行

[复制链接]
发表于 2016-5-4 15:26:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x




  1. foreach name $view {
  2. checkButton .lef.$name -text $name -command {if {$name} {.lef.$name cget -text}}
  3. }


复制代码


请教各位大神,现在执行这句,可以正常生成checkbutton,但是后面command 内容是原样复制,执行的时候会报 $name 这个变量的错误,有没有办法解决。谢谢
 楼主| 发表于 2016-5-4 17:02:39 | 显示全部楼层
自己顶一下
发表于 2016-5-4 20:05:24 | 显示全部楼层
把command 后的{} 该成“”试试
不然就把所有的代码上传
 楼主| 发表于 2016-5-5 09:44:11 | 显示全部楼层
回复 3# darrenxu


   没有用,好像-command 后面默认就是原样输出   这个程序是用一个list 生成一些button,现在button可以生成,也就是说list 没有问题,就是- command 后面没办法读取变量的内容,造成生成的button 点击后不能执行动作
发表于 2016-5-5 09:50:28 | 显示全部楼层
变量名加{}试试
发表于 2016-5-5 10:32:47 | 显示全部楼层
回复 4# jifengban

我这里试了,没有问题,你的问题为{}中的变量不可以被替换 “”中的变量可以被替换。

另外-command的内容没有读懂,{if {$name} {.lef.$name cget -text}} 得到的结果没有接受方。不知道你要做什么。


实在不行把你的代码都贴上来我看看,或是告诉我功能,我帮你写一个。
 楼主| 发表于 2016-5-5 11:15:45 | 显示全部楼层
回复 6# darrenxu


   我要写的是把list中的每个元素都生成checkButton,并且把text的设置成对应的元素,当checkButton 选中以后返回checkButton 的-text比如,set lists {a b c}
然后根据这个 list 生成 checkButton .a -text a  checkButton
.b  -text b     checkButton
.c  -text c  , 当.a 选中的时候,返回.a 的 -text  也就是a
但是 list 的元素是不确定的,所以要用变量来替换
发表于 2016-5-5 12:39:24 | 显示全部楼层
本帖最后由 darrenxu 于 2016-5-5 12:40 编辑

回复 7# jifengban


   #!/usr/bin/wish
frame .lef
pack .lef
set view [list aa, bb, cc, dd]
foreach name $view {
checkbutton .lef.$name -text $name -variable ${name}_value -command "if { \${${name}_value} == 1 } { puts $name}"
pack .lef.$name
}
 楼主| 发表于 2016-5-5 13:57:44 | 显示全部楼层
回复 8# darrenxu


   谢谢大神。已经可以了……另外 还要请教 if { \${${name}_value} == 1}     \$ 的反斜杠是什么作用?
像button 的 variable   ${name}_value 可以在其他函数里面直接引用吗?
 楼主| 发表于 2016-5-5 13:58:51 | 显示全部楼层
回复 5# baojiewu


   谢谢,已经按照楼上的方法解决
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-12-22 19:01 , Processed in 0.024653 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表