现在的位置: 首页 > 综合 > 正文

使用按钮切换Panel

2013年01月01日 ⁄ 综合 ⁄ 共 1402字 ⁄ 字号 评论关闭
#!/usr/bin/python
#-*-coding:utf-8-*-


import wx
import time

#定义了配置文件的名字
config_filename = "xxx"

class PanelOne(wx.Panel):
	def __init__(self, parent):
		wx.Panel.__init__(self, parent)
		self.SetBackgroundColour(wx.RED);

class PanelTwo(wx.Panel):
	def __init__(self, parent):
		wx.Panel.__init__(self, parent)
		txt = wx.StaticText(self,label="Panel Two \n xxxxxxx")
		self.SetBackgroundColour(wx.GREEN);


class MainFrame(wx.Frame):
	def __init__(self, title):
		"""Constructor"""
		wx.Frame.__init__(self, None, title=title, size=(400, 400))
		self.panelOne = PanelOne(self)


		##创建一个按钮,并且绑定回调函数
		loadButton = wx.Button(self.panelOne, label='Open')
		loadButton.Bind(wx.EVT_BUTTON, self.load)

		##创建一个输入文本框,并设置里面的内容
		filename = wx.TextCtrl(self.panelOne)
		config_file = open(config_filename, 'r')
		repo_path = config_file.read()
		##得到repo的路径
		repo_path = repo_path[0:len(repo_path)-1] #去掉最后的回车换行符 
		filename.WriteText(repo_path); #将读出来的内容显示出来
		config_file.close()
	
		self.vbox = wx.BoxSizer(wx.VERTICAL)
		self.vbox.Add(filename,   proportion=0, flag=wx.EXPAND)
		self.vbox.Add(loadButton, proportion=1, flag=wx.EXPAND, border=5)
		self.panelOne.SetSizer(self.vbox)

	def load(self, event):
		print "Loading..."
		self.panelOne.Destroy()
		self.panelTwo = PanelTwo(self)
		self.vbox= wx.BoxSizer(wx.VERTICAL)
		self.vbox.Add(self.panelTwo, proportion=0, flag=wx.EXPAND)
		self.SetSizer(self.vbox)
		self.Layout()


if __name__ == "__main__":
	app = wx.App()
	win = MainFrame("xxx")
	#win = wx.Frame(None, title="xxx", size=(410, 335))
	win.Show()
	app.MainLoop()

panel的建立与销毁

vbox容器

Layout刷新

抱歉!评论已关闭.