4

簡単な質問:ウィジェットにはとは対照的にシグナルがありますか?Gtk.Scaledrag-endvalue-changed

私は gtk スケール ウィジェット (スライダー) を使用しています。ドキュメントvalue-changedによると、ユーザーがいつスライダーを変更したかを検出するために信号を使用する必要があります。

ここで、ユーザーはスライダーをつかみ、目的の値までドラッグします。目的の値の選択が終了したら(つまり、ドラッグが終了したら)、何かをしたいと思います。

ただし、ユーザーがまだスライダーを目的の値にドラッグしている間など、値が変化するたびvalue-changedに信号が送信されるため、開始値と終了値の間のすべての値に対してこれらの信号の 1 つを取得します。

これにより、プログラムに重大な遅延が発生し、不必要にすべてが発生します。

それで、値が変わるたびに発火するシグナルとは対照的に、ユーザーがスライダーの値の変更を終了したときに発火するシグナルをリッスンする方法はありますか?

現時点では、コードを実行する前に一定の短い時間待機することで呼び出しを抑制しvalue-changed、その期間に受信した最後の信号にのみ応答しています。これは問題なく動作しますが、もっと適切な信号を聞く必要があるかどうか疑問に思っていました.

4

4 に答える 4

3

機能を確認してくださいgtk_range_set_update_policy()。ポリシーを に設定しGTK_UPDATE_DISCONTINUOUSます。

于 2012-11-20T13:28:00.403 に答える
0

それを行うための公開 API はありません。あなたのアプローチはいいと思います。

于 2012-11-02T12:57:43.360 に答える