wxpython多个面板_wxpython笔记:Wxpython pannel切换

#!/usr/bin/env python

'''静态文本、可控文本、对话框、GetApp()'''

importwx,time

ID_EXIT=200ID_ABOUT=201

class Frame(wx.Frame): #2 wx.Frame子类

def __init__(self,parent = None,id = -1,title ='系统管理界面'):

wx.Frame.__init__(self,parent,id,title,size=(900,600))

self.panel_Celan1=None

self.panel_Celan2=None

self.panel_Celan3=None

self.panel_Celan1_1=None

self.setupStatusBar()

self.InitCelan()

self.InitButton()#初始化状态栏

defsetupStatusBar(self):#状态栏

sb = self.CreateStatusBar(2) #2代表将状态栏分为两个

self.SetStatusWidths([-1, -2]) #比例为1:2

self.SetStatusText("Ready", 0) #0代表第一个栏,Ready为内容

#timmer

self.timer =wx.PyTimer(self.Notify)

self.timer.Start(1000, wx.TIMER_CONTINUOUS)

self.Notify()#实时显示时间

defNotify(self):

t=time.localtime(time.time())

st= time.strftime('%Y-%m-%d %H:%M:%S', t)

self.SetStatusText(st,1) #这里的1代表将时间放入状态栏的第二部分上

#初始化登陆

defInitButton(self):

self.panel_Celan1= wx.Panel(self, pos=(400, 150), size=(300, 300))

wx.StaticText(self.panel_Celan1,label="Username",pos=(20,20))

wx.StaticText(self.panel_Celan1, label="Password", pos=(20, 50))

self._username=wx.TextCtrl(self.panel_Celan1,pos=(110,15))

self._passwd= wx.TextCtrl(self.panel_Celan1, pos=(110, 45),style=wx.TE_PASSWORD)

self._submit_btn=wx.Button(self.panel_Celan1,label=u'提交',pos=(100,100),size=(50,30))

self.panel_Celan1.Bind(wx.EVT_BUTTON,self.Onclick,self._submit_btn)#处理登陆事件

defOnclick(self,event):globaldenglu_flagif event.GetEventObject()==self._submit_btn:

user=self.GetUsername()

passwd=self.GetPasswd()print(user+":"+passwd)if(user == "wenli"and passwd == "123456"):

denglu_flag=True

self.panel_Celan1.Destroy()

self.panel_Celan1_1=wx.Panel(self, pos=(400, 150), size=(300, 300))

wx.StaticText(self.panel_Celan1_1, label="欢迎登陆", pos=(130, 150))defGetUsername(self):returnself._username.GetValue()defGetPasswd(self):returnself._passwd.GetValue()#初始化侧栏

defInitCelan(self):

self.panel_Celan= wx.Panel(self, pos=(0, 0), size=(200, 800)) #创建侧栏画板

self._background = wx.Image("background.jpg",type =wx.BITMAP_TYPE_ANY,)

self._background= self._background.Rescale(200,150) #改变图像大小

wx.StaticBitmap(self.panel_Celan,-1,wx.BitmapFromImage( self._background)) #显示图像

self._caidan1 = wx.Button(self.panel_Celan, label=u'用户信息', pos=(0, 150), size=(200, 30))

self.panel_Celan.Bind(wx.EVT_BUTTON, self.Onclick_Ce, self._caidan1)

self._caidan2= wx.Button(self.panel_Celan, label=u'图书馆大厅', pos=(0, 180), size=(200, 30))

self.panel_Celan.Bind(wx.EVT_BUTTON, self.Onclick_Ce, self._caidan2)

self._caidan3= wx.Button(self.panel_Celan, label=u'公告', pos=(0, 210), size=(200, 30))

self.panel_Celan.Bind(wx.EVT_BUTTON, self.Onclick_Ce, self._caidan3)#处理侧栏的点击事件

defOnclick_Ce(self,event):globaldenglu_flagif event.GetEventObject() ==self._caidan1:#如果需要显示的地方存在其他面板,删除

ifself.panel_Celan2:

self.panel_Celan2.Destroy()ifself.panel_Celan3:

self.panel_Celan3.Destroy()if notself.panel_Celan1 :if(denglu_flag ==False):

self.InitButton()else:if notself.panel_Celan1_1:

self.panel_Celan1_1= wx.Panel(self, pos=(400, 150), size=(300, 300))

wx.StaticText(self.panel_Celan1_1, label="欢迎登陆", pos=(130, 150))if event.GetEventObject()==self._caidan2:#如果需要显示的地方存在其他面板,删除

ifself.panel_Celan1:

self.panel_Celan1.Destroy()ifself.panel_Celan1_1:

self.panel_Celan1_1.Destroy()ifself.panel_Celan3:

self.panel_Celan3.Destroy()if notself.panel_Celan2 :

self.panel_Celan2= wx.Panel(self, pos=(200, 0), size=(700, 700))if event.GetEventObject() ==self._caidan3:ifself.panel_Celan1:

self.panel_Celan1.Destroy()ifself.panel_Celan1_1:

self.panel_Celan1_1.Destroy()ifself.panel_Celan2 :

self.panel_Celan2.Destroy()if notself.panel_Celan3:

self.panel_Celan3= wx.Panel(self, pos=(400, 150), size=(300, 300))

wx.StaticText(self.panel_Celan3, label="公告", pos=(130, 150))class App(wx.App): #5 wx.App子类

def __init__(self):#如果要重写__init__,必须调用wx.App的__init__,否则OnInit方法不会被调用

wx.App.__init__(self)defOnInit(self):

self.frame=Frame()

self.SetTopWindow(self.frame)

self.frame.Show()returnTrueif __name__=="__main__":

denglu_flag=False

app=App()

app.MainLoop()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值