The Puzzle example shows how to enable drag and drop with a custom model to allow items to be transferred between a view and another widget.