mac wxpython 菜单栏消失

时间:2021-06-19 20:12:22

标签: windows macos wxpython menubar

我用菜单栏写了一个 wxpython wx.frame。 该程序在过去两年中运行良好。 这是我创建菜单栏对象的方式。

类 CnTaaDMenubar(wx.MenuBar): def init(self, TaaD, parent): super(CnTaaDMenubar, self).init() self.__TaaD = TaaD self.parent = 父母

      #--- cretate the file menu
      fileMenu = wx.Menu()
      saveItem = wx.MenuItem(fileMenu, wx.ID_SAVE,text = "save log",kind = wx.ITEM_NORMAL)
      # copyItem.SetBitmap(wx.Bitmap("copy.bmp")) 
      fileMenu.Append(saveItem) 

      saveAsItem = wx.MenuItem(fileMenu, wx.ID_SAVEAS, text = "save log as ...",kind = wx.ITEM_NORMAL) 
      # cutItem.SetBitmap(wx.Bitmap("cut.bmp")) 
      fileMenu.Append(saveAsItem) 

      importTestScriptItem = wx.MenuItem(fileMenu, wx.NewId(), text = "I&import script",kind = wx.ITEM_NORMAL)
      # copyItem.SetBitmap(wx.Bitmap("copy.bmp")) 
      fileMenu.Append(importTestScriptItem) 


      quitItem = wx.MenuItem(fileMenu, wx.ID_CLOSE, text = "quit",kind = wx.ITEM_NORMAL) 
      # cutItem.SetBitmap(wx.Bitmap("cut.bmp")) 
      fileMenu.Append(quitItem) 

      self.Append(fileMenu, '&file') 

      #--- create the edit menu 
      editMenu = wx.Menu() 
      copyItem = wx.MenuItem(editMenu, wx.ID_COPY,text = "copy",kind = wx.ITEM_NORMAL)
      # copyItem.SetBitmap(wx.Bitmap("copy.bmp")) 
      editMenu.Append(copyItem) 

      cutItem = wx.MenuItem(editMenu, wx.ID_CUT,text = "cut",kind = wx.ITEM_NORMAL) 
      # cutItem.SetBitmap(wx.Bitmap("cut.bmp")) 
      editMenu.Append(cutItem) 

      pasteItem = wx.MenuItem(editMenu, wx.ID_PASTE,text = "paste",kind = wx.ITEM_NORMAL) 
      # pasteItem.SetBitmap(wx.Bitmap("paste.bmp")) 
      editMenu.Append(pasteItem)

      self.Append(editMenu, '&edit') 

      #--- create view item
      viewMenu = wx.Menu() 
      animaOrScreenShotItem = wx.MenuItem(viewMenu, wx.NewId(),text = "change to animation",kind = wx.ITEM_CHECK) 
      # cutItem.SetBitmap(wx.Bitmap("cut.bmp")) 
      viewMenu.Append(animaOrScreenShotItem) 
      self.Append(viewMenu, '&view') 

      ####################################################
      # project menu
      projectMenu = wx.Menu() 

      switchProjectItem = wx.MenuItem(projectMenu, wx.NewId(), text = "switch project",kind = wx.ITEM_NORMAL) 
      # cutItem.SetBitmap(wx.Bitmap("cut.bmp")) 
      projectMenu.Append(switchProjectItem) 

      updateProjectItem = wx.MenuItem(projectMenu, wx.NewId(), text = "update project",kind = wx.ITEM_NORMAL) 
      # cutItem.SetBitmap(wx.Bitmap("cut.bmp")) 
      projectMenu.Append(updateProjectItem) 

      newProjectItem = wx.MenuItem(projectMenu, wx.NewId(), text = "new project",kind = wx.ITEM_NORMAL) 
      # cutItem.SetBitmap(wx.Bitmap("cut.bmp")) 
      projectMenu.Append(newProjectItem) 

      inviteItem = wx.MenuItem(projectMenu, wx.NewId(), text = "invite member", kind = wx.ITEM_NORMAL) 
      # cutItem.SetBitmap(wx.Bitmap("cut.bmp")) 
      projectMenu.Append(inviteItem) 

      addIssueTrackerItem = wx.MenuItem(projectMenu, wx.NewId(), text = "add issue tracker", kind = wx.ITEM_NORMAL) 
      # cutItem.SetBitmap(wx.Bitmap("cut.bmp")) 
      projectMenu.Append(addIssueTrackerItem) 

      deleteIssueTrackerItem = wx.MenuItem(projectMenu, wx.NewId(), text = "delete issue tracker", kind = wx.ITEM_NORMAL) 
      # cutItem.SetBitmap(wx.Bitmap("cut.bmp")) 
      projectMenu.Append(deleteIssueTrackerItem) 

      self.Append(projectMenu, '&project') 


      ####################################################
      # test data menu
      testDataMenu = wx.Menu() 
      newTestDataItem = wx.MenuItem(testDataMenu, wx.NewId(), text = "new test data card",kind = wx.ITEM_NORMAL) 
      # cutItem.SetBitmap(wx.Bitmap("cut.bmp")) 
      testDataMenu.Append(newTestDataItem) 
    
      selectTestDataItem = wx.MenuItem(testDataMenu, wx.NewId(), text = "select test data card",kind = wx.ITEM_NORMAL) 
      # cutItem.SetBitmap(wx.Bitmap("cut.bmp")) 
      testDataMenu.Append(selectTestDataItem) 

      updateTestDataItem = wx.MenuItem(testDataMenu, wx.NewId(), text = "update test data card",kind = wx.ITEM_NORMAL) 
      # cutItem.SetBitmap(wx.Bitmap("cut.bmp")) 
      testDataMenu.Append(updateTestDataItem) 
      self.Append(testDataMenu, '&test data') 

      #--- cretate the file menu
      TRGMenu = wx.Menu()
      newTRGItem = wx.MenuItem(TRGMenu, wx.NewId(), text = "register TRG", kind = wx.ITEM_NORMAL)
      # copyItem.SetBitmap(wx.Bitmap("copy.bmp")) 
      TRGMenu.Append(newTRGItem) 

      myTRGsItem = wx.MenuItem(TRGMenu, wx.NewId(), text = "my TRGs", kind = wx.ITEM_NORMAL)
      # copyItem.SetBitmap(wx.Bitmap("copy.bmp")) 
      TRGMenu.Append(myTRGsItem) 

      updateTRGItem = wx.MenuItem(TRGMenu, wx.NewId(), text = "update TRG", kind = wx.ITEM_NORMAL)
      # copyItem.SetBitmap(wx.Bitmap("copy.bmp")) 
      TRGMenu.Append(updateTRGItem) 

      self.Append(TRGMenu, '&TRGs')


      ####################################################
      # help in menubar 
      helpMenu = wx.Menu() 
      menuHtmlItem = wx.MenuItem(helpMenu, wx.NewId(), "help", kind=wx.ITEM_NORMAL)
      helpMenu.Append(menuHtmlItem) 
      aboutUsItem = wx.MenuItem(helpMenu, wx.NewId(), "about us", kind=wx.ITEM_NORMAL)
      helpMenu.Append(aboutUsItem) 

      self.Append(helpMenu, '&help') 

      self.Bind(wx.EVT_MENU, self.onQuit, quitItem)
      self.Bind(wx.EVT_MENU, self.onSwitchProject, switchProjectItem)
      self.Bind(wx.EVT_MENU, self.onUpdateProject, updateProjectItem) 
      self.Bind(wx.EVT_MENU, self.onNewProject, newProjectItem) 

      self.Bind(wx.EVT_MENU, self.addIssueTracker, addIssueTrackerItem) 
      self.Bind(wx.EVT_MENU, baseFrame.onNull, deleteIssueTrackerItem)

      self.Bind(wx.EVT_MENU, self.__TaaD.queryDataCardManager().createTestData, newTestDataItem)
      self.Bind(wx.EVT_MENU, self.__TaaD.queryDataCardManager().selectTestData, selectTestDataItem)
      self.Bind(wx.EVT_MENU, baseFrame.onNull, updateTestDataItem)

      self.Bind(wx.EVT_MENU, self.onNewTRG, newTRGItem)
      self.Bind(wx.EVT_MENU, self.onMyTRGs, myTRGsItem)
      self.Bind(wx.EVT_MENU, self.onUpdateTRG, updateTRGItem)

      self.Bind(wx.EVT_CLOSE, self.onTerminate)enter code here

这是我在 wx.frame 实例化方法中调用这个菜单栏的方法。

    self.menubar = CnTaaDMenubar(self.__TaaD, self)
    self.SetMenuBar(self.menubar)
    self.menubar.Show() 

但是今天突然菜单栏在mac平台消失了,而在windows平台仍然出现。
我检查了 wx.frame 样式并显式添加 wx.SYSTEM_MENU 选项并在这里和那里显式添加 menubar.Show() 语句。 但是这个问题在mac平台并没有得到解决。 有人可以帮我吗?

谢谢

农场

0 个答案:

没有答案
相关问题