3

我正在尝试在 python/GTK 中编写一个 TreeStore,每个父级对应于所有加载的文件名(“mol_name”),每个父级的子级都指定相应加载文件的一个或多个组件(“链”)。

我想要 3 列窗口,第一列列出加载的每个文件的名称,第二列是一个检查按钮,用于切换是否将结果操作应用于该文件,第三列是一个组合框,它不列出一个或多个可能的组件可以选择关联的加载文件以进一步细化如何应用操作。

以下是我到目前为止的代码。任何帮助或指导使其工作将不胜感激:

for imol in molecule_number_list():
    combobox_name = molecule_name(imol)
    combobox.append_text(combobox_name)
combobox.connect('changed', sel_ref_mol)
box1_vbox.pack_start(combobox, False, False)

window = gtk.Window()
window.set_default_size(200, 200)

treestore = gtk.TreeStore(str, bool)
for imol in molecule_number_list():
    mol_name = molecule_name(imol)
    piter = treestore.append(None, [mol_name, True])
    for chain in chain_ids(imol):
        treestore.append(piter, [chain, True])

treeview = gtk.TreeView(treestore)
column_text = gtk.TreeViewColumn("Text")
column_toggle = gtk.TreeViewColumn("Toggle")
column_combo = gtk.TreeViewColumn("Combo")
treeview.append_column(column_text)
treeview.append_column(column_toggle)
treeview.append_column(column_combo)

cellrenderer_text = gtk.CellRendererText()
column_text.pack_start(cellrenderer_text, False)
column_text.add_attribute(cellrenderer_text, "text", 0)

cellrenderer_toggle = gtk.CellRendererToggle()
column_toggle.pack_start(cellrenderer_toggle, True)
column_toggle.add_attribute(cellrenderer_toggle, "active", 1)

cellrenderer_combo = gtk.CellRendererCombo()
cellrenderer_combo.set_property("editable", True)
cellrenderer_combo.set_property("model", treestore)
cellrenderer_combo.set_property("text-column", 0)
column_combo.pack_start(cellrenderer_combo, False)
column_combo.add_attribute(cellrenderer_combo, "text", 2)
4

0 回答 0