2012-02-05 2 views
2

ALL、 GTK +には、GtkComboBoxというウィジェットがあります。実装の詳細はわかりませんが、Windowsでは2つのウィジェット(テキストコントロールとリストコントロール)で構成されています。テキストコントロールの右側に小さなボタンもあります。そのボタンをクリックすると、リストコントロールがポップアップします。GtkComboBoxでマウスクリックを検出する方法は?

私の質問は:どのように私はGtkComboBoxでそのボタンのマウスクリックを検出するのですか?そのようなクリックは、捕まえることができるシグナルを出すか、GtkComboBoxウィジェットにポップダウン信号を送信してマウスクリックを食べるだけですか?

BTWはGTK +の複合ウィジェットでもありますか?

すべての言語の例が役立ちます。

ありがとうございます。

+0

"Windows上"は、プラットフォーム固有の動作/ウィジェットを適用しないため、GTK +が関わっている完全なレッドヒーリングです。あなたが見ているのは、どのプラットフォームでも得られるものです。 (これはしばしば欠点として嘲りられますが、プログラマとしては私は非常に好きです。)また、 'ComboBox'は適切に設定されていればテキストコントロールしか持っていません。例えば、私のものはありません。 –

答えて

1

GtkComboBoxは実際には「マウスクリックを食べる」ことがあります。GtkComboBoxウィジェットを変更またはサブクラス化せずに探している動作を取得するのは非常に難しいと思います。私は、GtkComboBoxがコンポジットウィジェットであるかどうかに頼っていないでしょう。それは、変更可能な実装の詳細のようです。

実際にコンボボックスでマウスクリックをキャプチャしたい場合は、アップストリームをパドリングしているようです。結局のところ、ユーザーがウィジェット(キーボードなど)を使用するための別の方法があります。 GtkComboBoxは、選択が変更されるたびにchangedシグナルを送出します。これはアプリケーションで使用できますか?

+0

はい、私はEメールを送信しようとしましたが、誰も応答しませんでした。 :(とにかく私はそれがちょうどBTWのコンポジットであることに依存しようとしていない。事は私がテキスト領域にマウスクリックをキャッチしようとしていない - ドロップダウンボタンのみです。どのようにGTK +が動作するのですか?テキストコントロール上でマウスクリックをキャッチすることができます。この場合、ドロップダウン矢印では「ポップダウン/ポップアップ」信号を送信できません。 – Igor

関連する問題