我在做一个简单的加密小程序,我为它设计了一个可视界面。但是在具体的一些操作上出现了问题,下面是代码:
#这是点击按钮的事件,这个按钮放在一个叫panel的画布里面
self.bt_encrypt=wx.Button(self.panel,label=u"加 密",size=(150,40))
self.Bind(wx.EVT_BUTTON,self.Onclick_encrypt,self.bt_encrypt)
#这是Onclick_encrypt函数
def Onclick_encrypt(self,e):
self.panel.Destroy()
self.encrypt_picture_panel(e)#这是另一个函数
#encrypt_picture_panel函数的样子
def encrypt_picture_panel(self,e):
title_font=wx.Font(32,wx.DEFAULT,wx.FONTSTYLE_NORMAL,wx.NORMAL)
button_font=wx.Font(16,wx.DEFAULT,wx.FONTSTYLE_NORMAL,wx.NORMAL)
label_font=wx.Font(13,wx.DEFAULT,wx.FONTSTYLE_NORMAL,wx.NORMAL)
self.encrypt_panel_picture=wx.Panel(self)
self.encrypt_panel_picture.SetBackgroundColour('white')
self.title_encrypt=wx.StaticText(self.encrypt_panel_picture,-1,label=u"加 密")
self.title_encrypt.SetFont(title_font)
self.bt_select=wx.Button(self.encrypt_panel_picture,label=u"密钥以图片保存",size=(160,30))
self.bt_select.SetFont(button_font)
self.bt_browse=wx.Button(self.encrypt_panel_picture,label=u"浏览...",size=(100,30))
self.bt_browse.SetFont(button_font)
self.bt_back=wx.Button(self.encrypt_panel_picture,label=u"返 回",size=(100,30))
self.bt_back.SetFont(button_font)
self.bt_start=wx.Button(self.encrypt_panel_picture,label=u"开 始",size=(100,30))
self.bt_start.SetFont(button_font)
self.label_select=wx.StaticText(self.encrypt_panel_picture,label=u"密钥保存形式:",size=(120,30))
self.label_select.SetFont(label_font)
self.label_state=wx.StaticText(self.encrypt_panel_picture,label=u"密钥以图片保存",size=(0,0))
self.label_state.SetFont(label_font)
self.label_filepath=wx.StaticText(self.encrypt_panel_picture,label=u"需加密文件路径:",size=(130,30))
self.label_filepath.SetFont(label_font)
self.text_filepath=wx.TextCtrl(self.encrypt_panel_picture,size=(300,30))
self.text_filepath.SetFont(button_font)
#界面布局
hsizer_select=wx.BoxSizer(wx.HORIZONTAL)
hsizer_select.Add(self.label_select,flag=wx.LEFT|wx.RIGHT,border=5)
hsizer_select.Add(self.bt_select,flag=wx.LEFT,border=5)
hsizer_select.Add(self.label_state,flag=wx.LEFT,border=5)
hsizer_filepath=wx.BoxSizer(wx.HORIZONTAL)
hsizer_filepath.Add(self.label_filepath,flag=wx.LEFT|wx.RIGHT,border=5)
hsizer_filepath.Add(self.text_filepath,flag=wx.LEFT|wx.RIGHT,border=5)
hsizer_filepath.Add(self.bt_browse,flag=wx.LEFT|wx.RIGHT,border=5)
hsizer_bottom=wx.BoxSizer(wx.HORIZONTAL)
hsizer_bottom.Add(self.bt_back,flag=wx.LEFT|wx.RIGHT,border=5)
hsizer_bottom.Add(self.bt_start,flag=wx.LEFT|wx.RIGHT,border=5)
vsizer_encrypt_picture=wx.BoxSizer(wx.VERTICAL)
vsizer_encrypt_picture.Add(self.title_encrypt,flag=wx.CENTER|wx.TOP,border=10)
vsizer_encrypt_picture.Add(hsizer_select,flag=wx.TOP|wx.ALIGN_LEFT,border=20)
vsizer_encrypt_picture.Add(hsizer_filepath,flag=wx.ALIGN_LEFT|wx.TOP,border=20)
vsizer_encrypt_picture.Add(hsizer_bottom,flag=wx.ALIGN_RIGHT|wx.TOP,border=20)
self.encrypt_panel_picture.SetSizer(vsizer_encrypt_picture)
在我点了panel画布的“加密”按钮后,panel画布被销毁,encrypt_panel_picture画布被建立起来。问题就出现在这个过程,在销毁一个画布重设另一个画布后,窗口会显示不正常,而当我调整窗口大小(必须手动调整)之后又会正常显示
初始界面:
点击了加密按钮后:
调整大小中:
大小调整完毕后:
这是什么问题?该要怎么解决?