-1

私はtk widget Comboboxを使用していますが、その中のアイテムを選択するたびに

無効なコマンド名 .top47.not48.fpage2.sw.sf.frame.cf2.frame.c.shell.listb

私のコードは次のようになります:-

ComboBox $mainframe.cf2.frame.c -textvariable variable1 \
        -values Corners -modifycmd "new_values"

これは、このようなエラーを発生させない他のコンボボックスのすべての値を制御するメインのコンボボックスです。

4

1 に答える 1

1

これは、省略した「new_values」関数のエラーが原因である可能性が非常に高くなります。これを示すサンプルとして:

package require BWidget
proc modify {} {.xyzzy something}
ComboBox .c -textvariable v -values Corners -modifycmd modify
pack .c

これを実行してドロップダウンからエントリを選択すると、「エラー:無効なコマンド名「.xyzzy」」が表示されます。winfo children .c.c.shell.listbが存在することを示しているように、対処しようとしているウィンドウは、明らかにこのBWidgetsクラスの内部実装を掘り下げています。ただし、これは安全ではありません。実装がバージョンごとに変わる可能性があり、ドロップダウンがいつ作成および破棄されるかを制御できません。winfo exists $combo.shell.listb少なくともを使用して、ターゲットウィンドウの存在を確認してください。を使用して、互換性のあるバージョンのBWidgetsパッケージも確認することをお勧めします。package require -exact BWidget 1.M.N

于 2011-12-13T11:14:25.707 に答える