一、導入
不知大家有沒有在上一課中發現,我們的視窗背景一直是灰色的,就像這樣:
這個灰色的背景,主要是因為我們沒有使用容器,如果我們放一個容器進去會不會好一些呢。那麼wxPython有沒有容器呢?肯定是有的。其實我們上一次定義的Frame視窗就是一個容器,因為它本身就是一個視窗容器,可以容納控件等等。而我們能不能在這個頂級視窗容器中再添加一些以Frame為父級的子容器呢?這時,我們就要用到Panel面闆了。
二、認識Panel面闆
我們為了能夠更好地布局視窗内的控件,來應對視窗大小的變化,就需要用到面闆。以後,如果有什麼控件需要放到這個視窗中,就直接把控件放在這個面闆中就行了。
我們先來看看代碼:
import wx
class MyFrame(wx.Frame): #該對象繼承于wx.Frame架構
def __init__(self):
super().__init__(parent=None,title="視窗",size=(400,300),pos=(100,100))
panel = wx.Panel(parent=self)#将父級容器定義為視窗(就是這個目前視窗對象self)
statictext = wx.StaticText(parent=panel,label='文字1',pos=(20,20))#文字标簽
class App(wx.App): #該對象繼承于wx.App架構
def OnInit(self): #直接執行個體化該對象并調用此函數,相當于顯示,然後直接在main中進入主事件循環
frame = MyFrame()#執行視窗定義
frame.Show()
return True
def OnExit(self): #可以在這裡釋放一些資源
print("應用程式退出")
return 0
if __name__ == '__main__':#判斷是否是主程序
app=App()
app.MainLoop() #在這裡調用主事件循環
就是說,我們如果定義了一個面闆,想把該面闆放在哪個容器或面闆下,就将parent參數設為誰。比如我們這裡就将視窗容器作為父容器。
我們還可以在該面闆中定義一個靜态文本框,關于靜态文本框,我們後面也會講到,大家也可以自行學習。
我們來看一下運作結果:
三、總結
有沒有發現我們的視窗背景變色了,也顯示出了文字。以後我們還會使用Panel面闆做更多的事情。
好了,今天我們講完了Panel面闆。今後,我們還會使用面闆做更多的事情,有興趣的話,可以自行探究或研究wxPython幫助文檔。如有不足,請指出!感謝您的閱讀!