2017-11-02 12 views
0

다음 코드를 사용하여 함수 내에서 레이블 텍스트를 변경하려고합니다. 이를 위해 레이블에 변수 이름을 사용해야합니다.Tk에서 경로 이름을 사용하여 전역 레이블에 액세스하기

#! /usr/bin/wish8.6 

set mylabel [label .a_lab -text "INITIAL TEXT"] 
button .a_button -text "Change"  -command changer 
pack .a_lab -fill both -expand 1 
pack .a_button -fill both -expand 1 

proc changer {} { 
    # $::mylabel config -text "changed!";# works; 
    $::.a_lab config -text "NEW TEXT!" ;# does not work; 
    } 

wm geometry . 300x200+300+300 

텍스트를 변경하기 위해 경로 이름 (.a_lab) 만 사용할 수 있습니까? 위의 체인저 기능에서 두 번째 선언문을 사용하고 싶습니다. 당신의 도움을 주셔서 감사합니다.

답변

0

경로 이름을 사용하려면 $:: 접두어를 제거하십시오. 접 두부는 변수 이름을 변수 값으로 대체하는 데 사용됩니다. 경로 이름은 명령 이름이므로 그대로 사용해야합니다.

+0

정말 간단하게 만들었습니다! 감사. – rnso