免费注册 查看新帖 |

Chinaunix

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

多出来的菜单,怎么回事? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-10-28 10:22 |只看该作者 |倒序浏览
小弟新学 wxpython,有很多东西不熟悉。非常希望得到各位的帮助,非常感谢。

以下是一段示例代码,运行代码后,发现菜单栏上多了一个“Window”菜单,而代码中并没有写入这个菜单。
百思不得其解,特地贴出来,求各位达人赐教:

  1. import wx
  2. import wx.aui

  3. class ParentFrame(wx.aui.AuiMDIParentFrame):
  4.     def __init__(self, parent):
  5.         wx.aui.AuiMDIParentFrame.__init__(self, parent, -1,
  6.                                           title="AuiMDIParentFrame",
  7.                                           size=(640,480),
  8.                                           style=wx.DEFAULT_FRAME_STYLE)
  9.         self.count = 0
  10.         mb = self.MakeMenuBar()
  11.         self.SetMenuBar(mb)
  12.         self.CreateStatusBar()

  13.     def MakeMenuBar(self):
  14.         mb = wx.MenuBar()
  15.         menu = wx.Menu()
  16.         item = menu.Append(-1, "New child window\tCtrl-N")
  17.         self.Bind(wx.EVT_MENU, self.OnNewChild, item)
  18.         item = menu.Append(-1, "Close parent")
  19.         self.Bind(wx.EVT_MENU, self.OnDoClose, item)
  20.         mb.Append(menu, "&File")
  21.         return mb

  22.     def OnNewChild(self, evt):
  23.         self.count += 1
  24.         child = ChildFrame(self, self.count)
  25.         child.Show()

  26.     def OnDoClose(self, evt):
  27.         self.Close()


  28. class ChildFrame(wx.aui.AuiMDIChildFrame):
  29.     def __init__(self, parent, count):
  30.         wx.aui.AuiMDIChildFrame.__init__(self, parent, -1,
  31.                                          title="Child: %d" % count)

  32.         p = wx.Panel(self)
  33.         wx.StaticText(p, -1, "This is child %d" % count, (10,10))
  34.         p.SetBackgroundColour('light blue')

  35.         sizer = wx.BoxSizer()
  36.         sizer.Add(p, 1, wx.EXPAND)
  37.         self.SetSizer(sizer)

  38.         wx.CallAfter(self.Layout)


  39. if __name__ == '__main__':
  40.     app = wx.PySimpleApp(False)
  41.     frame = ParentFrame(None)
  42.     frame.Show()
  43.     app.SetTopWindow(frame)
  44.     app.MainLoop()
复制代码

论坛徽章:
0
2 [报告]
发表于 2008-11-13 14:03 |只看该作者
aui.AuiMDIParentFrame默认style有windows菜单,下有Close/Close All/Next/Previous菜单项,方便对其AuiMDIChildFrame操作。
你可以通过设置style去掉这个菜单。

aui.AuiMDIParentFrame.__init__(self, None, -1, title, pos, size,
                                             style=wx.DEFAULT_FRAME_STYLE|
                                                   wx.FRAME_NO_WINDOW_MENU)

这样windows菜单就不显示了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP