ITCL: как отобразить значения в записи? - PullRequest
0 голосов
/ 28 января 2019

В моих кодах запись не может отображать значение.Как это исправить?спасибо

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

1 Ответ

0 голосов
/ 28 января 2019

Есть несколько вещей, которые не совсем верны.Сначала значение , а не [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
}
...