<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">From: Kerri Reno <<a href="mailto:kreno@yumaed.org" target="_blank">kreno@yumaed.org</a>><br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
Got a response to this on stackoverflow - thanks!<br>
<br>
<a href="http://stackoverflow.com/questions/34055174/qvalidator-fixup-issue" rel="noreferrer" target="_blank">http://stackoverflow.com/questions/34055174/qvalidator-fixup-issue</a><br></blockquote><div><br></div><div>This is interesting. Your problem resulted from a subtle effect of the change from using native QStrings in PyQt4, to hiding the QString class and using only Python str and bytes types in PyQt5. In PyQt4, apparently the expression<br><pre style="" class=""><code><span class="">    text </span><span class="">+=</span><span class=""> </span><span class="">'-'</span></code></pre>given text a QString, invoked QString.append(), modifying the object that was passed as the function argument.<br><br>In PyQt5, the QString passed by Qt is automatically coerced to a Python str type. By Python rules, the argument "text" is just another local variable. The expression assigned a new value to the name "text" within the function, but that has no effect on the string passed (other than to reduce its reference count).<br><br></div><div>However I am dubious about the SO answer's suggestion to use <br><pre style="" class=""><code><span class="">    text</span><span class="">.</span><span class="">append</span><span class="">(</span><span class="">'-'</span><span class="">)</span></code><br><span style="font-family:arial,helvetica,sans-serif"><br>because neither the str or bytes types have that method! Did this actually work for you in Python3/PyQt5?<br><br></span></pre></div></div></div></div>