[PyQt] Mis-transfer in QLayout.addWidget
    Phil Thompson 
    phil at riverbankcomputing.com
       
    Sat Jul 12 16:11:51 BST 2014
    
    
  
On 08/07/2014 8:58 am, Martin Teichmann wrote:
> Hi Phil, Hi List,
> 
> QLayout and most of its sub-classes have a method addWidget
> that add a widget to the layout. Within the sip specification,
> 
> the widget parameter is declared /Transfer/, meaning that the
>  ownership of the widget is transferred to the layout. Unfortunately,
> 
> Qt transfers the ownership to the parent widget of the layout,
> 
> not the layout itself. This is unfortunate, because once the layout
>  is deleted, the widget might be garbage collected as well, while
> the parent widget still holds a reference to it. This leads to the
> weird situation of a python-created widget to loose all its python
> attributes.
> 
> I added a script that illustrates the problem. It raises and
> AttributeError in the very last line, which should not be there.
Should be fixed in tonight's PyQt4 and PyQt5 snapshots.
Thanks,
Phil
    
    
More information about the PyQt
mailing list