2017-11-02 6 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)のみ使用できませんか?上記のチェンジャー機能の2番目のステートメントを動作させたい。ご協力いただきありがとうございます。

答えて

0

パス名を使用するには、接頭辞$::を削除します。プレフィックスは、変数名に変数値を代入するために使用されます。パス名はコマンド名であり、そのまま使用してください。

+0

あなたは本当に簡単に作った!ありがとう。 – rnso

関連する問題