[prev in list] [next in list] [prev in thread] [next in thread] 

List:       pykde
Subject:    Re: [PyQt] =?utf-8?q?why_QCompleter=28parent=29_is_TransferBack=3F?=
From:       Phil Thompson <phil () riverbankcomputing ! com>
Date:       2014-11-29 9:33:19
Message-ID: 36a0ca90277bc5d770de880cc0386fc3 () riverbankcomputing ! com
[Download RAW message or body]

On 29/11/2014 9:04 am, Yuya Nishihara wrote:
> Hi,
> 
> I'm getting random crash around QCompleter.  The production code is not 
> simple
> but it roughly does:
> 
>     app = QApplication([])
>     window = QMainWindow()
>     lineedit = QLineEdit(window)
>     window.setCentralWidget(lineedit)
>     completer = QCompleter(window)
>     completer.setModel(QDirModel(completer))
>     lineedit.setCompleter(completer)
>     window.show()
>     app.exec_()
> 
> I looked into PyQt source and found that QCompleter(parent) is not 
> annotated
> as TransferThis.
> 
>     QCompleter(QObject *parent /TransferBack/ = 0);
>     QCompleter(QAbstractItemModel *model, QObject *parent 
> /TransferThis/ = 0);
>     QCompleter(const QStringList &list, QObject *parent /TransferThis/ 
> = 0);
> 
> So I've changed the above code as follows, and it seems the crash no 
> longer
> happen.
> 
>      window.setCentralWidget(lineedit)
>     -completer = QCompleter(window)
>     +completer = QCompleter([], window)
>      completer.setModel(QDirModel(completer))
> 
> Is there a reason for setting TransferBack only to QCompleter(parent) ?

No - it's a bug. Your fix is the correct one.

Thanks,
Phil
_______________________________________________
PyQt mailing list    PyQt@riverbankcomputing.com
http://www.riverbankcomputing.com/mailman/listinfo/pyqt
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic