【问题标题】:Wx Python : Status Bar Does Not Show Menu MessagesWx Python:状态栏不显示菜单消息
【发布时间】:2014-08-18 03:32:10
【问题描述】:

我刚开始使用 wx python,我无法让状态栏显示菜单项中的帮助文本。我读到状态栏消息可以用SetStatusText() 设置,但我希望显示这样的帮助文本.我正在使用 Ubuntu 14.04/wxPython 2.8/Python 2.7.6。请帮忙。提前致谢。

import wx

class Test(wx.Frame):

    def __init__(self,parent,id):
        wx.Frame.__init__(self,parent,id,"Frame aka Window",size = (300,200))
        panel = wx.Panel(self)

        self.status=self.CreateStatusBar()
        #self.status.SetStatusText("Something")
        menubar=wx.MenuBar()

        first=wx.Menu()
        second=wx.Menu()

        first.Append(wx.NewId(),"New Window","This is a new window")
        first.Append(wx.NewId(),"Open...","Open A New Window")
        menubar.Append(first,"File")
        menubar.Append(second,"Edit")        
        self.SetMenuBar(menubar)



if __name__=='__main__':
    app=wx.PySimpleApp()
    frame=Test(None,id=-1)
    frame.Show()
    app.MainLoop()

【问题讨论】:

  • 在 wxPython 2.9(以及所有其他版本,我猜)中,menu.Append(…, …, 'helptext') 中的第三个参数会在自动悬停在菜单项上时显示在状态栏中。您是否将菜单添加到 wx.MenuBar 实例?你设置菜单栏了吗?你在框架上self.CreateStatusBar() 了吗?还是您想实现其他目标?
  • 我做了所有这些。我只想显示帮助文本。
  • 是吗?当您将鼠标悬停在 Menu 条目上时,状态栏中会发生什么? MenuBar 条目似乎没有帮助文本。如果在您的最小工作示例中,悬停时未显示帮助文本,请在您的问题中发布整个代码。
  • 但是我已经在代码中指定了帮助信息。那为什么不显示帮助消息???
  • Mhhh... 您的示例适用于 Win7/wxPython 2.9/python 2.7.6 32 位(如前所述,仅适用于菜单条目,而不适用于顶级菜单条目文件和编辑。什么是你的规格?

标签: python python-2.7 wxpython


【解决方案1】:

您的代码在我的带有 wxpython 3.0 的 windows8 上运行良好。试试这个代码:

import wx
class Test( wx.Frame ):

    def __init__( self, parent ):
        wx.Frame.__init__ ( self, parent, id = wx.ID_ANY, title = "Frame aka Window", pos = wx.DefaultPosition, size = wx.Size( 300,200 ), style = wx.DEFAULT_FRAME_STYLE )

        self.panel = wx.Panel(self)
        self.status = self.CreateStatusBar( 1, 0, wx.ID_ANY )

        self.menu = wx.MenuBar( 0 )
        self.first = wx.Menu()
        self.new = wx.MenuItem( self.first, wx.ID_ANY, "New Window", u"This is a new window", wx.ITEM_NORMAL )
        self.first.AppendItem( self.new )
        self.open = wx.MenuItem( self.first, wx.ID_ANY, "Open", u"Open a new window", wx.ITEM_NORMAL )
        self.first.AppendItem( self.open )
        self.menu.Append( self.first, "File" ) 
        self.second = wx.Menu()
        self.menu.Append( self.second, "Menu" ) 
        self.SetMenuBar( self.menu )
        self.Centre( wx.BOTH )



if __name__=='__main__':
    app=wx.App()
    frame=Test(None)
    frame.Show()
    app.MainLoop()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多