这是wxWidgets的功能,在wxPython中未实现。
http://www.wxpython.org/docs/api/wx.TextValidator-
class.html-找不到
而:
http://docs.wxwidgets.org/trunk/classwx_text_validator.html
http://docs.wxwidgets.org/stable/wx_wxtextvalidator.html
wxPython演示中有一个Validators演示:
import wxclass TextObjectValidator(wx.PyValidator): """ This validator is used to ensure that the user has entered something into the text object editor dialog's text field. """ def __init__(self): """ Standard constructor. """ wx.PyValidator.__init__(self) def Clone(self): """ Standard cloner. Note that every validator must implement the Clone() method. """ return TextObjectValidator() def Validate(self, win): """ Validate the contents of the given text control. """ textCtrl = self.GetWindow() text = textCtrl.GetValue() if len(text) == 0: wx.MessageBox("A text object must contain some text!", "Error") textCtrl.SetBackgroundColour("pink") textCtrl.SetFocus() textCtrl.Refresh() return False else: textCtrl.SetBackgroundColour( wx.SystemSettings_GetColour(wx.SYS_COLOUR_WINDOW)) textCtrl.Refresh() return True def TransferToWindow(self): """ Transfer data from validator to window. The default implementation returns False, indicating that an error occurred. We simply return True, as we don't do any data transfer. """ return True # Prevent wxDialog from complaining. def TransferFromWindow(self): """ Transfer data from window to validator. The default implementation returns False, indicating that an error occurred. We simply return True, as we don't do any data transfer. """ return True # Prevent wxDialog from complaining.#----------------------------------------------------------------------class TestValidateDialog(wx.Dialog): def __init__(self, parent): wx.Dialog.__init__(self, parent, -1, "Validated Dialog") self.SetAutoLayout(True) VSPACE = 10 fgs = wx.FlexGridSizer(0, 2) fgs.Add((1,1)); fgs.Add(wx.StaticText(self, -1, "These controls must have text entered into them. Eachn" "one has a validator that is checked when the Okayn" "button is clicked.")) fgs.Add((1,VSPACE)); fgs.Add((1,VSPACE)) label = wx.StaticText(self, -1, "First: ") fgs.Add(label, 0, wx.ALIGN_RIGHT|wx.CENTER) fgs.Add(wx.TextCtrl(self, -1, "", validator = TextObjectValidator())) fgs.Add((1,VSPACE)); fgs.Add((1,VSPACE)) label = wx.StaticText(self, -1, "Second: ") fgs.Add(label, 0, wx.ALIGN_RIGHT|wx.CENTER) fgs.Add(wx.TextCtrl(self, -1, "", validator = TextObjectValidator())) buttons = wx.StdDialogButtonSizer() #wx.BoxSizer(wx.HORIZONTAL) b = wx.Button(self, wx.ID_OK, "OK") b.SetDefault() buttons.AddButton(b) buttons.AddButton(wx.Button(self, wx.ID_CANCEL, "Cancel")) buttons.Realize() border = wx.BoxSizer(wx.VERTICAL) border.Add(fgs, 1, wx.GROW|wx.ALL, 25) border.Add(buttons) self.SetSizer(border) border.Fit(self) self.Layout()app = wx.App(redirect=False)f = wx.frame(parent=None)f.Show()dlg = TestValidateDialog(f)dlg.ShowModal()dlg.Destroy()app.MainLoop()
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)