本篇内容来自https://www.cnblogs.com/-wenli/p/12149850.html
1.布局分析和注意点
例程主要是Sizer布局应用。wx.BoxSizer的布局方向分为横向和纵向两种,并且可以在横向或纵向方向上包含子sizer以创建嵌套的布局。
LeftPanel、CenterPanel、RightPanel三个面板采用横向boxsizer布局。对应四个Box盒子,三个垂直盒子,一个水平盒子。
三个垂直盒子:
Boxv1布局LeftPanel
Boxv3布局CenterPanel
Boxv4布局RightPanel
一个水平盒子:
Boxh1布局三个垂直盒子
#创建三个面板
defInit_Panel(self):
self.LeftPanel=wx.Panel(self)
self.CenterPanel=wx.Panel(self)
self.RightPanel=wx.Panel(self)#创建四个盒子
#三个垂直盒子、一个水平盒子
defInit_Box(self):#三个垂直盒子
self.Boxv1 =wx.BoxSizer(wx.VERTICAL)
self.Boxv2=wx.BoxSizer(wx.VERTICAL)
self.Boxv3=wx.BoxSizer(wx.VERTICAL)#一个水平盒子
self.Boxh1 = wx.BoxSizer(wx.HORIZONTAL)
在水平盒子里布局三个垂直盒子
#将三个垂直盒子添加到垂直盒子
self.Boxh1.Add(self.LeftPanel,proportion = 1, border = 2,flag = wx.ALL |wx.EXPAND)
self.Boxh1.Add(self.CenterPanel, proportion=4, border=2, flag=wx.ALL |wx.EXPAND)
self.Boxh1.Add(self.RightPanel, proportion=1, border=2, flag=wx.ALL | wx.EXPAND)
两个主要的参数:
border:边框像素。
proportion:占空间的比率。
注意点:
2.页面切换实现
程序:
#创建notebook
nb = wx.Notebook(self.CenterPanel, style=wx.NB_FIXEDWIDTH)
page1=PageOne(nb)
page2=PageTwo(nb)
page3=PageThree(nb)#在notebook中添加面板,第一个参数是面板,第二个参数是标签
nb.AddPage(page1, "使用说明")
nb.AddPage(page2,"选择检索")
nb.AddPage(page3,"查看结果")
#本质:创建了三个面板###########################使用说明1######################################
classPageOne(wx.Panel):def __init__(self, parent):
wx.Panel.__init__(self, parent)
colour= [(160, 255, 204), (153, 204, 255), (151, 253, 225), ]
self.SetBackgroundColour(colour[0])
self.tx1= wx.StaticText(self, -1, "使用说明", (355, 45),
(100, -1), wx.ALIGN_CENTER)
font= wx.Font(14, wx.SWISS, wx.NORMAL, wx.BOLD)
self.tx1.SetFont(font)###########################使用说明2######################################
classPageTwo(wx.Panel):def __init__(self, parent):
<