我正在使用 PyGTK 2 在 Python 2.7 中编写应用程序。基本上我创建 TreeView 小部件,用内容填充它,然后检查选择是否更改。如果是真的,我希望在 TextView 框中打印选择。我的想法是获取选定的值、更新文本和刷新小部件。这是我获得所选值的方式:
定义:
class SomeClass:
def __init__(self):
...
someTextView = build_textview("some text")
...
tree_selection = someTreeView.get_child().get_selection()
tree_selection.connect("changed", self.selection_changed())
...
# Signal handler:
def selection_changed(self, widget, data=None):
(model, pathlist) = widget.get_selected_rows()
for path in pathlist :
tree_iter = model.get_iter(path)
value = model.get_value(tree_iter,0)
return value
如您所见, selection_changed 处理程序返回值。问题是在调用处理程序后如何保存该值?我知道我可以使用全局变量或类属性,但这不是一个选项。我希望代码看起来整洁。即这样:
tree_selection.connect("changed", value=self.selection_changed())
但当然它不起作用。