我有以下代码:
for file_name in file_list:
menu_item = gtk.MenuItem(file_name)
menu_item.show()
menu.append(menu_item)
我如何参考任何特定menu_item
内容以便我可以调用hide()
以将其隐藏在我的菜单中?使用print menu.get_children()
显示对象类型及其在内存中的地址。
可能最好的方法是创建一个包含各种菜单项的字典。由于您为每个文件创建一个菜单项,因此将file_name
用作各自的键menu_item
可能是明智的。
menu_items = {}
for file_name in file_list:
menu_item = gtk.MenuItem(file_name)
menu_item.show()
menu.append(menu_item)
menu_items[file_name] = menu_item
现在,您可以使用menu_items[file_name].hide()
访问为某个文件创建的菜单项并将其隐藏,或使用menu_items.values()
获取所有菜单项。
或者,如果您不想为此创建单独的数据结构,您应该能够使用menu.get_children()
来获取添加到菜单中的所有菜单项的列表。该列表包含实际的菜单项。它打印“对象类型及其在内存中的地址”正是菜单项的repr
方法(即,它表示为可打印字符串)的实现方式。