wx.TextCtrl(parent, id, value, pos, size, style)
樣式(style)參數(shù)接受一個(gè)或多個(gè)常量,如下列表 −
| S.N. | 參數(shù)&描述 |
|---|---|
| 1 |
wx.TE_MULTILINE 文本控件允許多行。如果未指定該樣式(style),換行字符不應(yīng)該在控件值中使用。 |
| 2 |
wx.TE_PASSWORD
文本將回顯為星號(hào)
|
| 3 |
wx.TE_READONLY
文本將不可編輯
|
| 4 |
wxTE_LEFT
在控件中的文本將左對(duì)齊(默認(rèn))
|
| 5 |
wxTE_CENTRE
在控件中的文本將居中對(duì)齊
|
| 6 |
wxTE_RIGHT
在控件中的文本將居右對(duì)齊
|
wx.TextCtrl類的重要方法。
| S.N. | 事件&描述 |
|---|---|
| 1 |
EVT_TEXT
響應(yīng)變化的文本框的內(nèi)容,或者通過手動(dòng)鍵入,或以編程方式
|
| 2 |
EVT_TEXT_ENTER
調(diào)用相關(guān)的處理程序當(dāng)Enter鍵在文本框中按下
|
| 3 |
EVT_TEXT_MAXLEN
只要文本長(zhǎng)度進(jìn)入觸發(fā)相關(guān)處理程序達(dá)到SetMaxLength()函數(shù)的值
|
self.t1 = wx.TextCtrl(panel) self.t2 = wx.TextCtrl(panel,style = wx.TE_PASSWORD) self.t3 = wx.TextCtrl(panel,size = (200,100),style = wx.TE_MULTILINE) self.t4 = wx.TextCtrl ( panel, value = "ReadOnly Text", style = wx.TE_READONLY | wx.TE_CENTER )
第一個(gè)框 EVT_TEXT 綁定器觸發(fā) OnKeyTyped()方法可以處理每個(gè)擊鍵。第二個(gè)框它的最大長(zhǎng)度為5。一旦用戶試圖輸入超過500個(gè)字符,EVT_TEXT_MAXLEN 綁定器發(fā)送運(yùn)行OnMaxLen()函數(shù)。多行文本框響應(yīng)回車鍵按下,因?yàn)镋VT_TEXT_ENTER綁定器。
import wx
class Mywin(wx.Frame):
def __init__(self, parent, title):
super(Mywin, self).__init__(parent, title = title,size = (350,250))
panel = wx.Panel(self)
vbox = wx.BoxSizer(wx.VERTICAL)
hbox1 = wx.BoxSizer(wx.HORIZONTAL)
l1 = wx.StaticText(panel, -1, "文本域")
hbox1.Add(l1, 1, wx.EXPAND|wx.ALIGN_LEFT|wx.ALL,5)
self.t1 = wx.TextCtrl(panel)
hbox1.Add(self.t1,1,wx.EXPAND|wx.ALIGN_LEFT|wx.ALL,5)
self.t1.Bind(wx.EVT_TEXT,self.OnKeyTyped)
vbox.Add(hbox1)
hbox2 = wx.BoxSizer(wx.HORIZONTAL)
l2 = wx.StaticText(panel, -1, "密碼文本")
hbox2.Add(l2, 1, wx.ALIGN_LEFT|wx.ALL,5)
self.t2 = wx.TextCtrl(panel,style = wx.TE_PASSWORD)
self.t2.SetMaxLength(5)
hbox2.Add(self.t2,1,wx.EXPAND|wx.ALIGN_LEFT|wx.ALL,5)
vbox.Add(hbox2)
self.t2.Bind(wx.EVT_TEXT_MAXLEN,self.OnMaxLen)
hbox3 = wx.BoxSizer(wx.HORIZONTAL)
l3 = wx.StaticText(panel, -1, "多行文本")
hbox3.Add(l3,1, wx.EXPAND|wx.ALIGN_LEFT|wx.ALL,5)
self.t3 = wx.TextCtrl(panel,size = (200,100),style = wx.TE_MULTILINE)
hbox3.Add(self.t3,1,wx.EXPAND|wx.ALIGN_LEFT|wx.ALL,5)
vbox.Add(hbox3)
self.t3.Bind(wx.EVT_TEXT_ENTER,self.OnEnterPressed)
hbox4 = wx.BoxSizer(wx.HORIZONTAL)
l4 = wx.StaticText(panel, -1, "只讀取文本")
hbox4.Add(l4, 1, wx.EXPAND|wx.ALIGN_LEFT|wx.ALL,5)
self.t4 = wx.TextCtrl(panel, value = "只讀文本",style = wx.TE_READONLY|wx.TE_CENTER)
hbox4.Add(self.t4,1,wx.EXPAND|wx.ALIGN_LEFT|wx.ALL,5)
vbox.Add(hbox4)
panel.SetSizer(vbox)
self.Centre()
self.Show()
self.Fit()
def OnKeyTyped(self, event):
print event.GetString()
def OnEnterPressed(self,event):
print "Enter pressed"
def OnMaxLen(self,event):
print "Maximum length reached"
app = wx.App()
Mywin(None, 'TextCtrl實(shí)例-www.yiibai.com')
app.MainLoop()

