python - 如何使用临时变量引用循环内创建的对象?

标签 python gtk pygtk

我有以下代码:

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 方法(即,它表示为可打印字符串)的实现方式。

关于python - 如何使用临时变量引用循环内创建的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15546659/

相关文章:

python - 通过 setup.py 构建的 cython 做错事(将所有 .so 文件放在额外的 src 目录中)

c - undefined reference ,WebKitGTK

linux - 软件安装 Solus-Project

python - 导入 GTK 时出错

python - 如何在 Django 中按日期范围过滤查询对象?

python - Scrapy仅抓取给定页面

python - Python中实时网络音频流的原始numpy数组

python - 在 PyGTK 中使用 F11 切换全屏的简单方法

gtk - 在哪里可以找到 gtk-builder-convert 脚本?

python - GTK 是否有通用更新通知/发布子系统?