使用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帮助文档。如有不足,请指出!感谢您的阅读!

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