Button Tcl/Tk:entry按钮-将值输入条目而不传递条目

Button Tcl/Tk:entry按钮-将值输入条目而不传递条目,button,tcl,tk,tkentry,Button,Tcl,Tk,Tkentry,我正在实现一个具有以下功能的条目和按钮。单击按钮后,我将获得一个检查按钮列表。选择复选按钮后,它们应反映在条目中。下面是我的实现。我不喜欢的一件事是将条目(.e)传递给get\u值和myok。有更好的办法解决我的问题吗 entry.e-宽度15-浮雕凹陷 button.b-文本“…”-命令[列表获取值.e] 包e.b-左侧 proc get_值{entry}{ 顶级。价值观 checkbutton.values.c1-文本“c1”-变量c1 checkbutton.values.c2-文本“c2

我正在实现一个具有以下功能的条目和按钮。单击按钮后,我将获得一个检查按钮列表。选择复选按钮后,它们应反映在条目中。下面是我的实现。我不喜欢的一件事是将条目(
.e
)传递给
get\u值和
myok
。有更好的办法解决我的问题吗

entry.e-宽度15-浮雕凹陷
button.b-文本“…”-命令[列表获取值.e]
包e.b-左侧
proc get_值{entry}{
顶级。价值观
checkbutton.values.c1-文本“c1”-变量c1
checkbutton.values.c2-文本“c2”-变量c2
button.values.ok-文本“ok”-命令[列出myok$entry.values]
button.values.cancel-文本“cancel”-命令[列出mycancel.values]
组件.values.c1.values.c2-侧面顶部
pack.values.cancel.values.ok-右侧
}
proc myok{entry warg}{
变量c1
变量c2
$entry删除0结束
如果{$c1}{
$entry insert“”
$entry插入“c1”
}
如果{$c2}{
$entry insert“”
$entry插入“c2”
}
销毁$warg
}
proc mycancel{warg}{
销毁$warg
}

您可以将变量与条目关联,并将其用于条目文本更新

entry  .e -width 15 -relief sunken -textvariable e
(每当变量
e
发生变化时,条目将相应更新)

但在这种情况下,如果要实现通用的
get_values
myok
函数,则必须传递相关变量的名称,而不是条目实例的名称。如果该条目是唯一的,您当然可以硬编码名称,而不是传递

无论如何,我看不出你在实施中有任何失误