重建复杂的GTK菜单



我有一个Ubuntu程序,该程序显示一个复杂的GTK菜单,最多4个嵌套级别,总计超过100个菜单项(我知道不是优雅(。菜单项表示数据库中的项目,当此数据更改时,菜单需要重建。

所以我有一个功能来照顾这一点:

def rebuild_asset_menu(self):
    self.asset_menu.set_submenu(self._menu_bases())
    GLib.idle_add(self.asset_menu.show_all)

self.asset_menu是附加大量子菜单的菜单项。self._menu_bases()构建子菜单结构并返回。

菜单结构的构建在程序启动时非常可爱。但是,当调用上述代码更新子菜单(本质上是用新的子菜单替换(时,GUI变得非常缓慢,并且菜单通常保持空。

仅仅是因为我的菜单元素太多,还是我做错了什么?还是Unity?

如果我对此进行了修改:

def rebuild_asset_menu(self):
    print ("rebuild")
    self.asset_menu.set_submenu(self._menu_bases())
    print ("rebuild1")
    self.asset_menu.show_all()
    print ("rebuild2")

该程序多次重建菜单。这是你的问题。我没有进一步解决这个问题。

最新更新