0
我正在使用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())
但當然它不起作用。
嗯,其實我知道它可以這樣做,但問題是如果和如何可以存儲變量**信號手柄返回**?我將編輯該問題以避免誤解。 – Sayid
您不能存儲返回值。您正在註冊一個函數,以便在選擇更改時由TreeView對象調用,以便您的處理程序將值返回給TreeView對象中不關心返回值的方法。 – pmoleri