<div dir="ltr">I had the problem that this sequence crashed Python:<br><br><div><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div class="im">
>>>> from PyQt4.QtCore import (Qt, QString, QTextStream)<br>
>>>> ts = QTextStream(QString())<br>
>>>> ts << u'x'<br>
> Segmentation fault<br></div></blockquote><div><br></div><div>Phil properly reminded me that,<br> <br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">


</div>You need to keep a reference to the QString.<br></blockquote><div><br></div><div>And I thought, oh crap, another didn't-keep-a-ref bug. I'm a dope.<br><br>But later it occurs: this is a great nuisance, because what I want to do is to call a function that returns a QTextStream ready to read. Maybe it is based on a file, or maybe it contains some boilerplate generated on the fly -- The latter being an in-memory stream created as above.<br>

<br></div><div>So this function either has to have access to a global QString, or the caller has to pass a QString for it to use in case it needs one, or the function has to return a tuple (stream, QString-it-may-or-may-not-be-based-on) and the caller has to keep the string in scope.<br>

<br></div><div>It would be much cleaner if the QTextStream(QString) constructor could take parental ownership of the QString it is passed. There is no question about its being related to the new object and essential to it. Would this be a Qt enhancement or a PyQt one?<br>

<br></div></div></div></div></div>