如何独立显示多个windows?

How to display multiple windows independently?

我正在编写一个 GUI,我想打开多个 windows 具有相同界面且独立的。但是当我尝试输入一个 window 时,另一个显示相同的东西,如何使 windows 独立?示例:

foreach name {test1 test2} {
    namespace eval $name {
        variable InputStr
        variable wid
        proc Display {var} {
            variable InputStr
            variable wid 
            set wid .$var

            destroy $wid
            toplevel $wid

            wm title $wid $var
            entry $wid.en -textvariable InputStr 
            pack $wid.en
        }
    }   
    ${name}::Display $name
}

他们为什么要依赖?如何解决这个问题呢?

给定一个非限定变量名,条目小部件假定该变量是一个全局变量,并在两种情况下使用相同的变量。尝试

entry $wid.en -textvariable [namespace current]::InputStr

entry $wid.en -textvariable $var\::InputStr

根据问题中的定义,这应该是同一回事。