我正在尝试创建一个具有步长增量的自定义SpinCtrl。这看起来很简单,所以我很惊讶原生SpinCtrl似乎没有这个功能,而Google在这方面也被证明是非常无用的。在
然而,当我试图定制一个时,我遇到了问题。这里有一些快速而肮脏的代码
class SpinStepCtrl( wx.SpinCtrl ):
def __init__( self, *args, **kwargs ):
super( SpinStepCtrl, self ).__init__( *args, **kwargs )
self.step = 99
self.Bind( wx.EVT_SPINCTRL, self.OnSpin )
#self.Bind( wx.EVT_SPIN_UP, self.OnUp )
#self.Bind( wx.EVT_SPIN_DOWN, self.OnDown )
def OnSpin( self, event ):
print 'X'
self.SetValue( self.GetValue() + self.step )
指纹就在那里,所以我可以看看发生了什么。至少我把所有的事情都说出来了。在
当使用EVT_SPINCTRL时,会调用回调,但最终会进入无限循环,因为SetValue显然会导致调用一个新的此类事件。这两种方法都没有多大帮助,因为我找不到一种方法来判断这是一个自旋上升还是自旋下降事件,所以我无法适当地更改值。在
我怎么才能让它工作?在
这对我有用:
在wx.lib.agw公司有floatspin小部件,它有更多的选项。我也将它与SetDigits(0)一起用于整数输入。在
好吧,不是最好的,但在Ubuntu上工作:
不过,我还是会考虑”自身设置值“正在生成”wx.EVT_旋转控制“一只虫子。在
相关问题 更多 >
编程相关推荐