2011-03-25 2 views
1

버튼을 만들고 여기에 비트 맵 및 텍스트를 배치하고 이벤트 처리기를 연결하는 간단한 설정이 있습니다.버튼 차단 이벤트에 대한 StaticText/StaticBitmap

@scanButton = Wx::Button.new(self, -1, '', @@SCAN_BUTTON_POS, :size => @@SCAN_BUTTON_SIZE) 
@scanBitmap = Wx::StaticBitmap.new(@scanButton, -1, bitmap, @@SCAN_BITMAP_POS) 
@scanHint = Wx::StaticText.new(@scanButton, -1, 'Scan', @@SCAN_HINT_POS, :style => Wx::ALIGN_CENTER) 

현재 기본 동작은 어디서나는 (은 정전기/포커스 불가능한만큼) 텍스트 또는 비트 맵을 통해하더라도 버튼에 클릭 이벤트를 전달하는 것이있을 거라고 생각 것 부모 (버튼)까지 클릭하면 버튼이 클릭됩니다.

대신 정적 텍스트/정적 비트 맵의 ​​경계 외부에있는 버튼을 클릭하면 단추를 클릭하는 유일한 방법입니다. 비트 맵이나 텍스트를 클릭해도 효과가 없습니다. 나는 비트 맵/텍스트에서 부모까지 이벤트 전달을 시도했지만 그 또한 작동하지 않습니다. 누구든지 어떤 제안이 있습니까? 아마도 내가 모르는 wxWidgets의 기본 동작이 있을까요?

답변

0

과 관련된 WX :: 도구 설명을 사용 - 포함 된 텍스트 요소는 마우스 이벤트를 차단합니다가. 다소 해킹 된 해결책은 비트 맵에 포함 된 필수 텍스트가있는 비트 맵을 포함하는 단일 비트 맵 버튼을 만드는 것입니다. 이는 텍스트가 정적이고 변경되지 않는 경우에만 작동합니다.

1

왜 Wx :: BitmapButton을 사용하지 않습니까? 은 "힌트"를 http://wxruby.rubyforge.org/doc/bitmapbutton.html

현재이 아무런 대답이없는 것처럼 내가 그것은 보이는 @scanButton http://wxruby.rubyforge.org/doc/tooltip.html

+0

비트 맵을 왼쪽으로 정렬하고 텍스트를 근처에 배치해야합니다. Wx :: BitmapButton에는 왼쪽 맞춤 옵션이 있지만이 옵션은 Windows에서만 작동하며 (docs에 따라) 플랫폼 불가지론을 유지해야합니다. 툴팁을 사용해 보았지만, 포커스가 항상없는 Google Sketchup에서 '최상위 유지'창을 만들었 기 때문에이 경우 작동하지 않습니다. 따라서 툴팁이 트리거되지 않습니다. 다소 두려운 특별한 경우입니다. – James

관련 문제