def __init__( self, parent, condition = None, delegate = None ): super( ClipBoardSelectDialog, self ).__init__( parent ) tree = TreeView() tree.setModel( ClipBoardModel() ) if delegate: tree.setItemDelegate( delegate ) condition = condition( self ) if condition else lambda component: True def doubleClicked( index ): if not index.isValid(): return component = tree.model().itemFromIndex( index ).component if condition( component ): self.result = component self.accept() tree.doubleClicked.connect( doubleClicked ) layout = QtGui.QVBoxLayout( self ) layout.addWidget( TreeWidget( tree, 'Get from Clip board' ) ) self.condition = condition