[PySide] QSortFilterProxyModel and QListView - indexWidget pointer get deleted when filtering

Jesus ea7dfh at ea7dfh.com
Sun Aug 10 00:26:30 CEST 2014


Hi

I'm not an expert programmer in python nor pyside by far, but I've made 
a test using pyqt4 with your code and the error is the same.

This is the kind of bug when an object loss its reference to itself 
inside a class. So I would check if the label item still has a parent 
when it is filtered (or deleted?) by the model. I may be wrong, of 
course, so please be gentle.

Regards,

Jesus

El 09/08/14 23:28, Stefan Champailler escribió:
> I've removed some useless code but the issue still is there...
>
> really sounds like a bug...
>
> stF
>
>
> On Sat, 9 Aug 2014 23:10:33 +0200
> Stefan Champailler <schampailler at skynet.be> wrote:
>
>> Hi MAtthieu,
>>
>> I can reproduce your bug
>>
>> Could you try to make a simpler version of your code ? Sometimes, it helps to sort out other causes of error (I had my share of dangling pointer with PySide...)
>>
>> Stefan
>>
>>
>>
>> On Fri, 8 Aug 2014 12:06:58 +0200
>> Matthieu Cadet <matthieu.cadet at gmail.com> wrote:
>>
>>> Hi
>>>
>>> As I didn't get answer yet, I've also post a question on StackOverflow
>>>
>>> http://stackoverflow.com/questions/24995936/pyside-qsortfilterproxymodel-and-qlistview-indexwidget-pointer-get-deleted-w
>>>
>>> Someone has test the code on Windows 7 with PySide 1.2.2 and Python 3.3 and
>>> says it works for him without RuntimeError message....
>>>
>>> I'm still trying to find a solution to this problem :P
>>>
>>>
>>>
>>> On Mon, Jul 28, 2014 at 2:26 PM, Matthieu Cadet <matthieu.cadet at gmail.com>
>>> wrote:
>>>
>>>> Hi PySide guru's
>>>>
>>>> I've a problem with a custom QListView I'm trying to make, here the
>>>> problem:
>>>>
>>>> I'm using QListView to show a list of QWidget object by using
>>>> QListView.setIndexWidget(),
>>>> this works pretty fine, but now I want to filter the item model by
>>>> using QSortFilterProxyModel()
>>>> with .setFilterWildcard() it is not working very well because the second
>>>> time the model is filtered
>>>> I got error like this :
>>>>
>>>> *RuntimeError: Internal C++ object (PySide.QtGui.QLabel) already deleted.*
>>>>
>>>> Without using filtering and QSortFilterProxyModel everything works fine,
>>>> but it seems I'm missing
>>>> something with the filtering operation, the indexWidget() is deleted when
>>>> using filtering :(
>>>>
>>>> here a sample code where you can reproduce the bug, when list view is
>>>> shown, hit 1,2 or 3 keyboard
>>>> key to activate filtering ( Backspace to set filtering empty to show all
>>>> items )
>>>>
>>>> *https://gist.github.com/66e29df303d1f1825a53.git
>>>> <https://gist.github.com/66e29df303d1f1825a53.git>*
>>>>
>>>>
>>>> Can someone please help me on this? is this a known bug ? or I'm doing it
>>>> completely wrong :P
>>>>
>>>> Thanks in advance for your help.
>>>>
>>>> --
>>>> Matthieu Cadet



-- 
Jesus Guardon



More information about the PySide mailing list