如何禁用主窗口MenuBar

时间:2015-02-28 05:20:07

标签: python wxpython

在我的wxpython APP中,我想禁用主窗口MenuBar(实际上我不知道它叫什么)。

enter image description here

如果我点击该图标,则此选项会加速。我想停止此操作,而不是停用MoveMinimizeClose等项目。但整个部分。

2 个答案:

答案 0 :(得分:0)

这就是所谓的系统菜单。如果不删除所有按钮,您实际上无法删除菜单。要做到这一点,你必须在初始化wx.Frame时使用一系列样式标志:

import wx

########################################################################
class NoSystemMenuFrame(wx.Frame):
    """
    There is no system menu, which means the title bar is there, but
    no buttons and no menu when clicking the top left hand corner
    of the frame
    """

    #----------------------------------------------------------------------
    def __init__(self):
        """Constructor"""
        no_sys_menu = wx.MINIMIZE_BOX | wx.MAXIMIZE_BOX | wx.RESIZE_BORDER | wx.CAPTION | wx.CLIP_CHILDREN | wx.CLOSE_BOX
        wx.Frame.__init__(self, None, title="No System Menu", style=no_sys_menu)
        panel = wx.Panel(self)
        self.Show()

#----------------------------------------------------------------------
if __name__ == "__main__":
    app = wx.App(False)
    frame = NoSystemMenuFrame()
    app.MainLoop()

您可以禁用菜单中的某些设置,但这些设置也适用于按钮。查看以下文章,该文章涵盖了大多数选项:

您可能还会发现文档本身很有用:

答案 1 :(得分:0)

我在这种情况下工作的方法是创建一个空菜单栏并将其设置为菜单栏,如下所示:

empty_menu_bar = MenuBar()
frame.SetMenuBar(empty_menu_bar)

由于菜单栏中没有菜单项,因此不会在窗口中显示。