如何从wxPython中的父框架更新子面板的UI

时间:2011-09-17 05:38:00

标签: wxpython

我有一个包含菜单栏和面板(wx.Panel)的主框架(wx.Frame)。面板包含框架的主UI。我想在点击菜单项时更新面板的UI。

我在事件处理程序中尝试self.Refresh(),self.panel.UpdateWindowUI(),self.UpdateWindowsUI(wxUPDATE_UI_RECURSE),但是它们不起作用。我不想创建新的面板,并且每次单击菜单项时都将它们添加回框架。

## =============== Event Handlers of the frame ===================        

def OnOpenConfig(self, event):
    """Open the configuration file for the application"""

    self.dir_name = os.getcwd()
    dlg = wx.FileDialog(self, "Choose a file", self.dir_name, "", "*.conf", wx.OPEN)
    if dlg.ShowModal() == wx.ID_OK:
        self.file_name = dlg.GetFilename()
        self.dir_name = dlg.GetDirectory()
    dlg.Destroy()
    print os.path.join(self.dir_name, self.file_name)

    # the sub panel is changed here because of the configuration file
    self.panel.LoadConfigFile(os.path.join(self.dir_name, self.file_name))

    # The update UI method should be here!!!!!!!
    self.panel.Refresh() 

1 个答案:

答案 0 :(得分:0)

你能解释一下self.panel.LoadConfigFile的作用吗?您也可以在刷新后尝试self.panel.Update()。