2017-12-15 5 views
0

나는 GUI를 작성 중이며 같은 인터페이스와 독립된 여러 개의 창을 열고 싶다. 그러나 한 창에서 입력을 시도 할 때와 다른 창에서 동일한 창을 표시 할 때 창을 독립적으로 만드는 방법은 무엇입니까? 예 :여러 창을 독립적으로 표시하는 방법은 무엇입니까?

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

규정되지 않은 변수 이름이 주어지면 입력 widget은 변수가 전역 변수라고 가정하고 두 경우 모두 동일한 변수를 사용합니다. 시도 같은 일해야

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

또는

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

, 문제의 정의 주어진.

+0

대단히 감사합니다! 정말 도움이됩니다. – Jimmy

관련 문제