【发布时间】:2015-12-04 12:14:37
【问题描述】:
如何解决这个问题,以便在我初始化一个新的 TreeNode 并将其传递给属性节点时触发 'setter' 事件?
class TreeNode( QtGui.QTreeWidgetItem ):
def __init__( self, parent, node ):
super( TreeNode, self ).__init__( parent )
self._node_object = node
@property
def node_object(self):
return self._node_object
@node_object.setter
def node_object(self, value):
self._node_object = value
self.setText( 0, self._node_object.name )
print "set data"
这不会触发 setter 事件。
node_object = Faction("Doug")
tree_node = TreeNode(self.node_tree, node_object)
但是这会触发事件......但理想情况下我想直接将节点传递给 TreeNode。
node_object = Faction("Doug")
tree_node = TreeNode(self.node_tree, None)
tree_node.node_object = node_object
更新
那么这是正确的设置方法吗?
class TreeNode( QtGui.QTreeWidgetItem ):
def __init__( self, parent, node ):
super( TreeNode, self ).__init__( parent )
self.node_object = node
@property
def node_object(self):
return self._node_object
@node_object.setter
def node_object(self, value):
self._node_object = value
self.setText( 0, self._node_object.name )
print "set data"
【问题讨论】:
-
更新后的代码看起来不错
-
谢谢。我很感激。
标签: python