2012-02-05 2 views
2

모두, GTK +에는 GtkComboBox라는 위젯이 있습니다. 구현 세부 사항을 모르지만 Windows에서는 텍스트 컨트롤과 목록 컨트롤의 두 위젯으로 구성됩니다. 텍스트 컨트롤의 오른쪽에는 작은 버튼이 있습니다. 해당 버튼을 클릭하면 목록 컨트롤이 나타납니다.GtkComboBox에서 마우스 클릭을 감지하는 방법은 무엇입니까?

제 질문은 : GtkComboBox에서 해당 버튼을 마우스로 클릭하는 것을 어떻게 감지합니까? 그러한 클릭은 잡힐 수있는 신호를 방출 할 지 아니면 그냥 GtkComboBox 위젯에 팝업 신호를 보내고 마우스 클릭을 먹는가?

BTW도 GTK +의 합성 위젯입니까?

모든 언어의 예가 도움이 될 것입니다.

감사합니다.

+0

"Windows에서"는 플랫폼 별 동작/위젯을 적용하지 않기 때문에 GTK +가 관련된 완전한 빨간색 청어입니다. 당신이 보는 것은 당신이 어떤 플랫폼에서 얻는 것입니다. (이것은 종종 단점으로 비웃지 만, 프로그래머로서 나는 그것을 선호합니다.) 또한 ComboBox는 적절히 설정되면 텍스트 컨트롤 만 갖습니다. 예를 들어, 내 것이 아닙니다. –

답변

1

GtkComboBox는 사실 "마우스 클릭을 먹습니다."GtkComboBox 위젯을 수정하거나 하위 클래스를 만들지 않고 찾고있는 동작을 얻으려면 매우 까다로울 것입니다. 나는 GtkComboBox에 합성 위젯을 의지하지 않겠지 만, 변경 될 수있는 구현 세부 사항처럼 보인다.

실제로 콤보 상자에서 마우스 클릭을 캡처하려는 경우 업스트림을 노리고있는 것처럼 보입니다. 결국 사용자가 위젯 (예 : 키보드)을 사용할 수있는 다른 방법이 있습니다. GtkComboBox는 선택 항목이 변경 될 때마다 changed 신호를 내 보냅니다 - 애플리케이션에서 사용할 수 있습니까?

+0

예, 전자 메일을 보내려고했지만 아무도 응답하지 않았습니다. :(어쨌든 나는 그것이 합성물이라는 것에 의지하지 않으려 고합니다. 단지 BTW입니다. 텍스트 영역에서 마우스 클릭을 잡으려고하지 않습니다. 단지 드롭 다운 버튼에서만 가능합니다. GTK +가 작동하는 방법 텍스트 컨트롤에서 마우스 클릭을 잡을 수 있습니다.이 경우 드롭 다운 화살표를 사용하여 "팝 다운/팝업"신호를 보낼 수 없습니다. – Igor

관련 문제