一、導入
不知大家有沒有在上一課中發現,我們的窗口背景一直是灰色的,就像這樣:
這個灰色的背景,主要是因爲我們沒有使用容器,如果我們放一個容器進去會不會好一些呢。那麼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幫助文檔。如有不足,請指出!感謝您的閱讀!