我正在使用滑块控件在我的应用程序中设置尺寸。不幸的是,在EVT_LEFT_UP事件之后,光标似乎被锁定到滑块控件,我需要单击应用程序上的其他位置以释放它。我可能遗漏了一些简单的东西,但它是什么?
import wx
class Example(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, -1, 'Slider control')
self.Centre()
self.sldr_size = wx.Slider(self, 100, 0, 1, 100, size=(250, -1), style=wx.SL_HORIZONTAL )
self.sldr_size.Bind(wx.EVT_LEFT_UP, self.sldr_size_button_up)
sizer = wx.GridBagSizer()
sizer.Add(self.sldr_size, pos=(0, 0))
self.SetSizer(sizer)
self.sldr_size.SetValue(33)
self.Show()
def sldr_size_button_up(self, event):
del event
self.item_size = 1.3 - float(self.sldr_size.GetValue())/100
print self.item_size
if __name__ == '__main__':
simple_screen_app = wx.App()
main_frame = Example()
main_frame.Show(True)
simple_screen_app.MainLoop()
编辑:简化代码
答案 0 :(得分:2)
本机滑块小部件很可能具有EVT_LEFT_UP的内置事件处理程序,用于释放鼠标捕获。由于您已截获EVT_LEFT_UP事件,因此您正在阻止调用内置处理程序。您可以通过调用处理程序中的event.Skip()
来告诉事件处理系统继续查找匹配的处理程序,如果不存在匹配的处理程序,则可以这样做。