Я полный новичок в мире tcl / tk, но я попытался исследовать этот вопрос самостоятельно и продолжаю выдавать пустые данные.
Я расширяю с помощью tcl / tkприложение, которое позволяет мне добавлять код для порождения дочернего окна и делать там, что мне нужно.Проблема в том, что когда я вызываю это окно и пытаюсь установить значение по умолчанию для моего виджета ввода, оно всегда отображается пустым.
С тех пор я создал ультра простое демонстрационное приложение, чтобы воспроизвести это:
#!/usr/local/bin/wish
set myvar1 "initial value 1"
entry .entry1 -textvariable myvar1
button .spawnchild -text "Spawn Child" -command "spawn_click"
pack .entry1 .spawnchild
proc spawn_click {} {
set myvar2 "initial value 2"
toplevel .lvl2
entry .lvl2.entry2 -textvariable myvar2
entry .lvl2.entry3 -textvariable myvar1
pack .lvl2.entry2 .lvl2.entry3
}
Как видите, в первом окне содержится виджет ввода, который имеет значение по умолчанию «начальное значение 1» и отображается правильно.Когда я нажимаю кнопку «Spawn Child», создается дочернее окно.Как вы можете видеть, он содержит два сложенных виджета входа.Каждый из них имеет значение по умолчанию, причем один сверху использует значение по умолчанию, которое было создано в собственной области видимости, а запись внизу - значение по умолчанию в области действия основной программы.
Проблема заключается в том, чтоверхнее поле ввода по какой-то причине не показывает его значение по умолчанию, а нижнее - просто отлично.
Может ли кто-нибудь дать объяснение этого поведения и как получитьверхний виджет для правильного отображения значения по умолчанию?
РЕДАКТИРОВАТЬ
Спасибо, Эндрю и Шленк, похоже, это был случай RTFM :) Я проверил ваши глобальные предложения иэто сработало, как и было обещано.Спасибо, что поправил меня!