私はTcl/Tkプログラムを持っています。 choices
の実行であるコンボボックスポストは、私が欲しいものttk :: unpolostの検出:: combobox
set cb [ttk::combobox .cb -state readonly -textvariable selection -postcommand [list choices .cb]]
PROC:その中で私はそうのようなコンボボックスを持っています。私の質問は、どのように私はコンボボックスがunpostsを検出するのですか?
私は<<ComboboxSelected>>
にバインドし、可変トレースをselection
に設定しようとしました。それぞれの問題は、ユーザーが実際に選択を変更したときにのみ発生することです。私はいつもコンボボックスが通知されないときに何らかの方法で検出する必要があります。
ありがとうございます!
編集私が達成しようとしている何
:コンボボックスのポストそれはオプションのリストをユーザに提示します。私は、オプションが何を意味するのかをユーザーが知ることを期待していないので、私はプログラムの別の領域でオプションを視覚的に強調しています。私はこれを強調表示し、-postcommand
とうまくいっています。問題は、強調表示をいつオフにするかを知ることです。
<<ComboboxSelected>>
ユーザーが選択した値を変更しない場合は発生しません。
<Leave>
および<FocusOut>
が早すぎます(たとえば、ボックスのポストの直後など)。
あなたはに特異的に結合することができます:あなたのコールバックは、それが与えられたイベントは、トップレベルのため実際であることを確認する必要があります。 –
私はとの両方を試しました。どちらも、コンボボックスの投稿の直後に(つまり、cbがクリックされるとすぐに)起動するように見えますが、これは早すぎます。私は、コンボボックスがポストすると、フォーカスを取得するフローティングリストボックスを作成すると思います。フローティングリストボックスがいつ破壊されるかを知る方法が必要です。 –
Imbue