附加到PopupMenu的MenuItem未显示包含wxPython的位图

2024-09-28 22:32:19 发布

您现在位置:Python中文网/ 问答频道 /正文

在Linux上使用Python2.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()

Tags: posselfif菜单substringitemeditorlist
2条回答

修改了此代码:

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)

enter image description here

有点尴尬,但我找到了自己问题的答案。这个问题不是特定于语言,而是gnome的设置问题。在

显然Gnome默认不启用菜单项上的图标。。。在

找到了here。在

谢谢大家!在

相关问题 更多 >