继上次窗口分割之后,初始化左右两个面板
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} ".format(time.strftime('%H:%M:%S'),message))