当在其中选择任何项目时,tcl中的Combobox会出错

时间:2011-11-28 07:33:08

标签: tcl tk bwidget

我正在使用tk widget Combobox,每当我选择其中的任何项目时,它都会给出

invalid command name .top47.not48.fpage2.sw.sf.frame.cf2.frame.c.shell.listb

我的代码如下: -

ComboBox $mainframe.cf2.frame.c -textvariable variable1 \
        -values Corners -modifycmd "new_values"

这是控制其中存在的其他组合框的所有值的主要组合框,不会产生任何这样的错误。

1 个答案:

答案 0 :(得分:1)

这很可能是由于您省略的“new_values”函数中的错误。作为展示这一点的样本:

package require BWidget
proc modify {} {.xyzzy something}
ComboBox .c -textvariable v -values Corners -modifycmd modify
pack .c

现在当你运行它并从下拉列表中选择一个条目时,你会得到'错误:无效的命令名“.xyzzy”'。您试图解决的窗口显然正在深入研究此BWidgets类的内部实现,因为winfo children .c向我显示.c.shell.listb存在。但是,这是不安全的 - 实现可能会从一个版本更改为下一个版本,并且您无法控制何时创建和销毁下拉列表。至少使用winfo exists $combo.shell.listb检查目标窗口是否存在。您可能希望使用package require -exact BWidget 1.M.N

确保兼容版本的BWidgets包