免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3873 | 回复: 1
打印 上一主题 下一主题

wxPython如何在wx.Notebook的某个也中关闭上级子框架 [复制链接]

论坛徽章:
3
2015亚冠之卡尔希纳萨夫
日期:2015-08-04 19:46:43数据库技术版块每日发帖之星
日期:2015-08-07 06:20:00数据库技术版块每日发帖之星
日期:2016-08-15 06:20:00
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-08-11 16:52 |只看该作者 |倒序浏览
本帖最后由 ipx-spx 于 2014-08-11 16:54 编辑

#!C:\Python27\python
# -*- coding:utf-8 -*-

import wx

class MyFrame(wx.MDIParentFrame):
    def __init__(self):
        wx.MDIParentFrame.__init__(self, None, wx.NewId(), "Test NoteBook")

        menuBar = wx.MenuBar()
        menuFile = wx.Menu()
        menuBar.Append(menuFile, "File")
        newFile = menuFile.Append(wx.NewId(), "New")
        menuFile.AppendSeparator()
        self.Bind(wx.EVT_MENU, self.newFrame, newFile)
        exitFile = menuFile.Append(wx.NewId(), "Exit")
        self.Bind(wx.EVT_MENU, self.closeMe, exitFile)
        self.SetMenuBar(menuBar)

        self.Bind(wx.EVT_CLOSE, self.closeMe)

    def newFrame(self, evt):
        mpf = MyParentFrame(self)
        mpf.Show()

    def closeMe(self, evt):
        self.Destroy()

class MyParentFrame(wx.MDIChildFrame):
    def __init__(self, parent):
        wx.MDIChildFrame.__init__(self, parent, wx.NewId())
        p = wx.Panel(self)

        mnb = MyNotebook(p)
        mnb.Show()

        bs = wx.BoxSizer(wx.VERTICAL)
        bs.Add(mnb, 1, wx.EXPAND)
        p.SetSizer(bs)


class MyNotebook(wx.Notebook):
    def __init__(self, parent):
        self.parent = parent
        wx.Notebook.__init__(self, parent, wx.NewId())
        self.page1 = MyPage1(self)
        self.page2 = MyPage2(self)
        self.AddPage(self.page1, "One")
        self.AddPage(self.page2, "Two")

class MyPage1(wx.Panel):
    def __init__(self, parent):
        wx.Panel.__init__(self, parent, wx.NewId())
        self.parent = parent
        st = wx.StaticText(self, wx.NewId(), "Page A")
        btn = wx.Button(self, wx.NewId(), "Quit")
        self.Bind(wx.EVT_BUTTON, self.closeMe, btn)
        bs = wx.BoxSizer(wx.VERTICAL)
        bs.Add(st, 0, 0)
        bs.Add(btn, 0, 0)
        self.SetSizer(bs)

    def closeMe(self, evt):
        MyParentFrame.closeMe(self.parent.parent)


class MyPage2(wx.Panel):
    def __init__(self, parent):
        wx.Panel.__init__(self, parent, wx.NewId())

        st = wx.StaticText(self, wx.NewId(), "Page B")

if __name__ == "__main__":
    app = wx.App()
    frame = MyFrame()
    frame.Show()
    app.MainLoop()

我想用wx.Notebook的page中的一个按钮关闭子框架,留下父框架,但是红色部分的代码是错误的,因为wx.Notebook无法关闭子框架,请教各位大大,如何实现?

论坛徽章:
0
2 [报告]
发表于 2014-08-15 16:35 |只看该作者
能把问题再描述清楚一些么?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP