在多个 windows Tcl/Tk 中共享一个小部件

Share a widget in multiple windows Tcl/Tk

假设我有一个 label 小部件 .x.somelabel。有没有办法在多个不同的 windows 中插入这个标签,以便它们之间共享?我尝试将 grid-in 选项一起使用,但看起来它在最后指定的小部件中插入了 label

不,您不能共享标签小部件本身。

但是您可以共享标签用来显示文本的变量。

 package require Tk

 set vars(statusmessage) "All is ok on the western front."

 toplevel .x
 ttk::label .x.somelabel -textvariable vars(statusmessage)
 pack .x.somelabel

 toplevel .y
 ttk::label .y.msglabel -textvariable vars(statusmessage)
 pack .y.msglabel

 # Change the variable after one second
 after 1000 [list set vars(statusmessage) {Error!}]