wx.TextCtrl和wx.Validator

wx.TextCtrl和wx.Validator,第1张

wx.TextCtrl和wx.Validator

这是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()


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5646271.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存