在使用wx.TextCtrl控件时遇到需要更改其边框和提示文字的需求,在一般的教程中没有找到解决办法。
我这里稍微重构了一下
from wx import *
class ConciseTextCtrl(TextCtrl):
def __init__(self,parent, id=ID_ANY, value=EmptyString,pos=DefaultPosition,size=DefaultSize,
style=0,hint=EmptyString,validator=DefaultValidator, name=TextCtrlNameStr):
TextCtrl.__init__(self,parent, id=id, value=value,pos=pos,size=size, style=style | BORDER_STATIC,validator=validator, name=name)
self.SetHint(hint)
然后就可以直接使用了
from wx import *
class ConciseTextCtrl(TextCtrl):
def __init__(self,parent, id=ID_ANY, value=EmptyString,pos=DefaultPosition,size=DefaultSize,
style=0,hint=EmptyString,validator=DefaultValidator, name=TextCtrlNameStr):
TextCtrl.__init__(self,parent, id=id, value=value,pos=pos,size=size, style=style | BORDER_STATIC,validator=validator, name=name)
self.SetHint(hint)
class TextCtrlFrame(Frame):
def __init__(self):
super(TextCtrlFrame, self).__init__(
parent=None,
title="文本框",
size=(300, 150)
)
self.Center()
self.panel = Panel(self)
self.textCtrl = ConciseTextCtrl(self.panel, hint="用户名",pos=(20,30))
self.panel.Layout()
class MainApp(App):
def OnInit(self):
frame = TextCtrlFrame()
frame.Show()
return True
if __name__ == "__main__":
app = MainApp()
app.MainLoop()