def __init__(self, parent, name, init, stextwidth):
def OnEdit(event):
text = event.GetString()
point = self.value.GetInsertionPoint()
if (IsNumber(self.value.GetValue()) == False):
self.value.SetBackgroundColour( "Pink" )
self.value.SetForegroundColour( "Black" )
else:
self.value.SetBackgroundColour(wx.NullColour)
self.value.SetForegroundColour(wx.NullColour)
self.value.ChangeValue(text)
self.value.SetInsertionPoint(point)
fontpointsize=wx.SystemSettings.GetFont(wx.SYS_SYSTEM_FONT).GetPointSize()
self.font = wx.Font(fontpointsize, wx.FONTFAMILY_SWISS, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL)
wx.BoxSizer.__init__(self, wx.HORIZONTAL)
dc = wx.ScreenDC()
dc.SetFont(self.font)
textw,texth = dc.GetTextExtent(name)
if textw > stextwidth:
labelw = textw
else:
labelw = stextwidth
self.label = StaticTextNew(parent, -1, name, style =wx.ALIGN_RIGHT, size=(labelw,-1) )
self.label.SetFont(self.font)
self.Add( self.label, 0, wx.CENTER )
self.value = TextCtrlNew(parent, value=str(init), style=wx.TE_PROCESS_ENTER)
self.value.SetWindowStyle(wx.TE_RIGHT)
self.value.SetFont(self.font)
self.value.Bind(wx.EVT_TEXT, OnEdit)
self.Add( self.value, 1, wx.CENTER|wx.EXPAND )
评论列表
文章目录