所以我在这里有一个简单的设置,我在其中创建一个按钮,在其上放置一个位图和一些文本,然后挂钩一个事件处理程序。
@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 :(得分:1)
为什么不使用Wx :: BitmapButton? http://wxruby.rubyforge.org/doc/bitmapbutton.html
对于“提示”,我会使用与@scanButton http://wxruby.rubyforge.org/doc/tooltip.html相关联的Wx :: ToolTip
答案 1 :(得分:0)
看起来好像目前没有答案 - 包含的文本元素将阻止鼠标事件。一个有点hackish的解决方案是制作一个包含位图的位图按钮,该位图在位图中嵌入了所需的文本。这仅在文本是静态且永不更改时才有效。