附加到PopupMenu的MenuItem在wxPython中不显示位图
在Linux上使用Python 2.7。
我正在从一个字符串列表中创建MenuItem对象。我使用wx.MenuItem.SetBitmap()
来设置图标,但在弹出菜单上图像没有显示出来。
这是我创建弹出菜单的方法:
def CreatePopupMenu(self, list):
self.menu = wxMenu()
i = 0
substring = self.GetLastWord()
for tableName in list:
if tableName.startswith(substring):
item = wx.MenuItem(self.menu, i, tableName)
item.SetBitmap(wx.Bitmap('a.png'))
self.menu.AppendItem(item)
i += 1
pos = self._Editor.PointFromPosition(self._Editor.GetCurrentPos())
pos.x += self._Editor.GetFont().GetPixelSize().width
pos.y += self._Editor.GetFont().GetPixelSize().height
self.Bind(wx.EVT_MENU, self.OnPopupItemSelected, item)
if self.menu.GetMenuItemCount() > 0:
#menuItem = self.menu.FindItemById(0)
self.PopupMenu(self.menu, pos)
self.menu.Destroy()
2 个回答
1
看看这个改编过的代码:
def __init__(self):
wx.Frame.__init__(self, None, -1)
self.CreatePopupMenu(['mOpen', 'mClose', 'mFile'])
menuBar = wx.MenuBar()
menuBar.Append(self.menu, 'menu')
self.SetMenuBar(menuBar)
def CreatePopupMenu(self, list):
self.menu = wx.Menu()
i = 0
#substring = self.GetLastWord()
substring = 'm'
for tableName in list:
if tableName.startswith(substring):
item = wx.MenuItem(self.menu, i, tableName)
item.SetBitmap(wx.Bitmap('zimages/gato.png'))
self.menu.AppendItem(item)
0