繼上次窗口分割之后,初始化左右兩個面板
def InitLpanel(self): self.lpanel.SetBackgroundColour('#AABBCC') LBox = wx.BoxSizer(wx.VERTICAL) #創建左面板的整體布局管理器,為豎直方向 nm_staticbox = wx.StaticBox(self.lpanel,-1,'Account:') #創建Account staticbox nm_sizer = wx.StaticBoxSizer(nm_staticbox,wx.VERTICAL) #為Account staticbox創建豎直的布局管理器 nm_box = wx.BoxSizer(wx.HORIZONTAL) #創建文本框的布局管理器 nm_input_box = wx.BoxSizer(wx.HORIZONTAL) username = wx.StaticText(self.lpanel,-1,"UserName") #創建靜態文本框 passwd = wx.StaticText(self.lpanel,-1,label="Passwd") self.username_input = wx.TextCtrl(self.lpanel,-1,style=wx.TE_LEFT,value='username',size=(50,20)) #創建文本輸入框,self.username.GetValue()可以獲取文本輸入框的value self.passwd_input = wx.TextCtrl(self.lpanel,-1,style=wx.TE_LEFT|wx.TE_PASSWORD,value='12345678',size=(50,20)) #size為文本框的大小 nm_box.Add(username,proportion=0,flag=wx.LEFT,border=1) #proportion=0時,表示控件大小不變,為正數時,按照值的大小進行縮放 #flag有三類,wx.LEFT,wx.TOP,wx.RIGHT,wx.ALL等表示聲明邊界;wx.ALIGN_LEFT,wx.CENTER,wx.ALIGN_CENTER_HORIZONTAL,wx.ALIGEN_TOP,wx.ALIGN_BOTTOM等表示聲明對齊方式;wx.EXPAND為填充 #border為邊界間隔 nm_box.Add(passwd,0,wx.LEFT,15) nm_input_box.Add(self.username_input,0,wx.LEFT, 10) nm_input_box.Add(self.passwd_input,0,wx.LEFT, 20) LBox.Add(nm_sizer,0,wx.ALL|wx.LEFT|wx.RIGHT,10) nm_sizer.Add(nm_box,0,wx.ALL|wx.CENTER, 1) nm_sizer.Add(nm_input_box,0,wx.ALL|wx.CENTER, 1) self.lpanel.SetSizer(LBox) #boxsizer生效 def InitRpanel(self): self.rpanel.SetBackgroundColour('#4F9D9D') self.logtext = wx.TextCtrl(self.rpanel, style=wx.TE_MULTILINE|wx.TE_RICH2|wx.TE_READONLY) #wx.TE_CENTER 文本居中; # wx.TE_LEFT左對齊; # wx.TE_PASSWORD 文本用*號代替; # wx.TE_READONLY,只讀,用戶不能修改 #wx.TE_MULTILINE 多行顯示 #wx.TE_HSCROLL 長的行將不換行,顯示水平滾動條 #wx.TE_RICH2 把最新版本的豐富文本控件用作基本的窗口部件 self.logtext.SetMaxLength(0) #取消默認文本長度限制,當其它數字時,可以限制文本的輸入長度 self.points=self.logtext.GetFont().GetPointSize() #當前字體大小 self.font=wx.Font(self.points+3,wx.DEFAULT,wx.NORMAL,wx.BOLD,False) #self.font=wx.Font(self.points+3,wx.ROMAN,wx.ITALIC,wx.BOLD,True) #wx.Font(pointSize,family,style,weight,underline) #pointSize:wx.DEFAULT,wx.MODERN,wxROMAN,wx.SCRIPT,wx.SWISS #sytle:wx.MORMAL,wx.SLANT,wx.ITALIC #weight:wx.NORMAL,wx.LIGHT,wx.BOLD #True :underline or not statictext=wx.StaticText(self.rpanel,-1,label='Log Area') statictext.SetForegroundColour(wx.BLACK) #statictext.SetBackgroundColour(wx.WHITE) RBox=wx.BoxSizer(wx.VERTICAL) RBox.Add(statictext,0,flag=wx.ALL|wx.CENTER,border=2) RBox.Add(self.logtext,1,flag=wx.ALL|wx.EXPAND,border=2) self.rpanel.SetSizer(RBox)
運行結果:
在輸出log的時候還可以加顏色顯示
def LogMessage(self,message,colour='BLACK'):
self.logtext.SetDefaultStyle(wx.TextAttr(colour,wx.WHITE,self.font))
self.logtext.AppendText("[{0}]:{1}\n".format(time.strftime('%H:%M:%S'),message))