天天看點

使用wx中的Panel

一、導入

不知大家有沒有在上一課中發現,我們的視窗背景一直是灰色的,就像這樣:

使用wx中的Panel

這個灰色的背景,主要是因為我們沒有使用容器,如果我們放一個容器進去會不會好一些呢。那麼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參數設為誰。比如我們這裡就将視窗容器作為父容器。

我們還可以在該面闆中定義一個靜态文本框,關于靜态文本框,我們後面也會講到,大家也可以自行學習。

我們來看一下運作結果:

使用wx中的Panel

三、總結

有沒有發現我們的視窗背景變色了,也顯示出了文字。以後我們還會使用Panel面闆做更多的事情。

好了,今天我們講完了Panel面闆。今後,我們還會使用面闆做更多的事情,有興趣的話,可以自行探究或研究wxPython幫助文檔。如有不足,請指出!感謝您的閱讀!

上一篇: wx.ID_**