首页 > 解决方案 > ITCL:如何显示条目中的值?

问题描述

在我的代码中,该条目无法显示该值。如何纠正它?谢谢

package require Itcl
namespace eval np {} {
  itcl::class myTable {
    variable tableValue
    constructor {} {
      array set tableValue {1 a 2 b 3 c 4 d}
    }

    proc build {} {
      destroy .e
      entry .e -textvariable [namespace current]::tableValue(1)
      pack .e
    }
  }
}
np::myTable tb
tb build

标签: tcltkitcl

解决方案


有几处不太正确。首先值不是 [namespace current]::tableValue(1),这是变量名。如果你想要这个值,你必须set在这种情况下使用:

entry .e -textvariable [set [namespace current]::tableValue(1)]

但这还不够,因为上面设置了文本变量(将保存条目值的变量名),并且实际上并没有在条目中插入值。

您可能希望insert用于该特定目的:

proc build {} {
  destroy .e
  entry .e
  .e insert end [set [namespace current]::tableValue(1)]
  pack .e
}

推荐阅读