使用wx中的Panel

一、導入

不知大家有沒有在上一課中發現,我們的窗口背景一直是灰色的,就像這樣:沒有使用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參數設爲誰。比如我們這裏就將窗口容器作爲父容器。
我們還可以在該面板中定義一個靜態文本框,關於靜態文本框,我們後面也會講到,大家也可以自行學習。
我們來看一下運行結果:使用Panel面板

三、總結

有沒有發現我們的窗口背景變色了,也顯示出了文字。以後我們還會使用Panel面板做更多的事情。
好了,今天我們講完了Panel面板。今後,我們還會使用面板做更多的事情,有興趣的話,可以自行探究或研究wxPython幫助文檔。如有不足,請指出!感謝您的閱讀!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章