2017-12-15 13 views
0

私はGUIを書いていますが、同じインターフェースと独立した複数のウィンドウを開きたいと思います。しかし、私は1つのウィンドウに入力しようとすると、別のものが同じことを示し、どのようにウィンドウを独立させるのですか?例:複数のウィンドウを個別に表示する方法は?

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 
} 

なぜそれらが依存するのですか?この問題を解決するには?

+0

ソリッド "Tclフレーバ"の面白いコード。 –

答えて

2

修飾されていない変数名を指定すると、入力ウィジェットは変数がグローバルであるとみなし、どちらの場合も同じ変数を使用します。問題の定義を与え、

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

または

同じものでなければなりません
entry $wid.en -textvariable $var\::InputStr 

を試してみてください。

+0

ありがとう!それは本当に役に立ちます。 – Jimmy

関連する問題