wxPython各个布局的简单案例
生活随笔
收集整理的這篇文章主要介紹了
wxPython各个布局的简单案例
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、絕對布局
panel = wx.Panel(self.frame)panel1 = wx.Panel(panel,pos=(0,0), size=(250, wx.EXPAND)) #設置寬度為250,高度撐滿;并且起點為之為(0,0) panel1.SetBackgroundColour("yellow") panel2 = wx.Panel(panel,pos=(255,0), size=(wx.EXPAND, wx.EXPAND)) #設置寬度和高度都撐滿 panel2.SetBackgroundColour("green")?運行結果如下(其他部分代碼省略,只給出了主題部分pannel的布局代碼):
二、使用Sizer來進行布局
Sizer布局包含以下幾類布局管理器:
參考地址:
https://docs.wxwidgets.org/stable/classwx_sizer.html
http://xoomer.virgilio.it/infinity77/wxPython/Widgets/wx.Sizer.html
BoxSizer,可設置水平或垂直布局,當控件超出窗體后不會自動換行:
def createPanel3(self):# 創建面板panel = wx.Panel(self.frame)vbox = wx.BoxSizer(wx.VERTICAL) #設置水平方向布局but1 = wx.Button(panel,wx.ID_ANY,"button1")but2 = wx.Button(panel, wx.ID_ANY, "button2")but3 = wx.Button(panel, wx.ID_ANY, "button3")but4 = wx.Button(panel, wx.ID_ANY, "button4")but5 = wx.Button(panel, wx.ID_ANY, "button5")but6 = wx.Button(panel, wx.ID_ANY, "button6")but7 = wx.Button(panel, wx.ID_ANY, "button7")but8 = wx.Button(panel, wx.ID_ANY, "button8")but9 = wx.Button(panel, wx.ID_ANY, "button9")but10 = wx.Button(panel, wx.ID_ANY, "button10")vbox.Add(but1)vbox.Add(but2,flag=wx.ALIGN_CENTER) #設置相對于窗口居中對齊vbox.Add(but3)vbox.Add(but4)vbox.Add(but5)vbox.Add(but6)vbox.Add(but7)vbox.Add(but8)vbox.Add(but9)vbox.Add(but10)panel.SetSizer(vbox)運行結果:
StaticBoxSizer,在BoxSizer外面加了一個靜態的邊框以及標簽,他可以獨立的存在也可以放到其他布局管理器中進行嵌套:
panel = wx.Panel(self.frame)vbox = wx.BoxSizer(wx.VERTICAL)Svbox = wx.StaticBoxSizer(wx.VERTICAL,panel,"StaticBoxSizer布局") # 設置水平方向布局vbox.Add(Svbox) #將StaticBoxSizer嵌套到BoxSizer中but1 = wx.Button(panel, wx.ID_ANY, "button1")but2 = wx.Button(panel, wx.ID_ANY, "button2")but3 = wx.Button(panel, wx.ID_ANY, "button3")but4 = wx.Button(panel, wx.ID_ANY, "button4")Svbox.Add(but1)Svbox.Add(but2) # 設置相對于窗口居中對齊Svbox.Add(but3)Svbox.Add(but4)panel.SetSizer(vbox)運行結果:
FlexGridSizer,網格布局,特點是可以設置網格之間的顯示比例:
panel = wx.Panel(self.frame)fgs = wx.FlexGridSizer(1, 2, 0, 5) #設置為1行,2列,列間距為5panel1 = wx.Panel(panel, size=(0, wx.EXPAND))panel1.SetBackgroundColour("yellow")panel2 = wx.Panel(panel, size=(0, wx.EXPAND))panel2.SetBackgroundColour("green")fgs.Add(panel1, 0, wx.EXPAND)fgs.Add(panel2, 0, wx.EXPAND)fgs.AddGrowableCol(0, 1) #指定第一列占1/3的寬度fgs.AddGrowableCol(1, 2) #指定第二列占2/3的寬度panel.SetSizer(fgs)運行結果:
?
總結
以上是生活随笔為你收集整理的wxPython各个布局的简单案例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: nodejs express 路由与
- 下一篇: wxpython组件SplitterWi