我从 here 借了一个示例代码并出于我的目的对其进行了更改:
import wx
def getBmp():
bmp = wx.EmptyBitmapRGBA(16,16, red=100, green=50, blue=50)
return bmp
class MyFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, style=wx.DEFAULT_FRAME_STYLE, parent=None)
self.SetTitle("why No image?")
menuBar = wx.MenuBar()
fileMenu = wx.Menu()
item = fileMenu.Append(wx.ID_NEW, "New")
item.SetBitmap(getBmp())
item = fileMenu.Append(wx.ID_OPEN, "Open")
item.SetBitmap(getBmp())
item = fileMenu.Append(wx.ID_SAVE, "Save")
item.SetBitmap(getBmp())
menuBar.Append(fileMenu, "File")
self.SetMenuBar(menuBar)
app = wx.PySimpleApp()
frame = MyFrame()
frame.Show()
app.SetTopWindow(frame)
app.MainLoop()
问题 :在我的系统配置(Ubuntu 12.04 和 wxPython 2.8.12.1)中,任何菜单项都没有显示图标/位图。没有错误消息,除非我关闭窗口:
*(python:3321): LIBDBUSMENU-GLIB-WARNING ***: 试图移除一个不相信我们是它的 parent 的 child 。
最佳答案
听起来 Unity 将所有菜单栏放入全局菜单中 - http://ubuntuforums.org/showthread.php?t=2004101
这两个链接更多地讨论了这个问题:
最后一个有一个解决方案,可以删除菜单栏,这样您就不会再看到错误了,但听起来它不像跨平台的方式工作。
关于python - Ubuntu 12.04 上的 wxPython 2.8.12.1 - 为什么不显示菜单图标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22562046/