<div dir="ltr"><div class="gmail_default" style="font-family:tahoma,sans-serif">​</div><div class="gmail_extra"><br><div class="gmail_quote">On 8 May 2018 at 21:59, Hans-Peter Jansen <span dir="ltr"><<a href="mailto:hpj@urpla.net" target="_blank">hpj@urpla.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;padding-left:1ex;border-left-color:rgb(204,204,204);border-left-width:1px;border-left-style:solid">Hi Jonathan,<br>
<span><br>
On Dienstag, 8. Mai 2018 20:22:12 J Barchan wrote:<br>
<br>
> > You can't have it both ways. Either you let PyQt automatically convert<br>
> > to/from QVariant (and you lose the detection of nulls) or you do it<br>
> > yourself (converting to Python using the value() method).<br>
> <br>
> I'm not asking to have anything both ways.​  I'm just asking how to write<br>
</span>> code so that the overridden method behaves *absolutely identically* to the<br>
<span>> base method it's overriding.  Surely that must be possible?<br>
> <br>
</span>> I remind you: when I have no override for ​QSqlQueryModel.data() *everything<br>
> behaves perfectly*.  I am saying: there is no problem, NULLs are handled as<br>
<span>> such and non-NULLs are correctly converted to their Python equivalent.  I<br>
> do not know how NULLs work (what they are returned as), but everything just<br>
> works.<br>
> <br>
> As soon as I write an override which just returns the base method, it goes<br>
> wrong on NULL.  If I put it the sip.autoconversion(False), it works on NULL<br>
> but now returns a QVariant where it used to return a Python native type, I<br>
> think.<br>
> <br>
> All I want to know is: how can I write an override of  ​<br>
> QSqlQueryModel.data() in Python/PyQt like:<br>
> <br>
> def data(self, index: QtCore.QModelIndex, role=QtCore.Qt.DisplayRole) -><br>
> typing.Any:<br>
>      value = super().data(index, role)<br>
>      return value<br>
> <br>
</span>> such that it returns *just exactly the same as* QSqlQueryModel.data() would<br>
<span>> have done, please, please, please?<br>
<br>
</span>Well, in a perfect world, you would get what you want, but we don't live in a <br>
perfect world... What hinders you to <div class="gmail_default" style="font-family:tahoma,sans-serif;display:inline">​​</div>convert any QVariant yourself?<br>
<br>
It's <div class="gmail_default" style="font-family:tahoma,sans-serif;display:inline">​​</div>additional one or two lines of code per type, or, if it is getting too <br>
"spagetti", a dict "switch" with type as key.<br>
<br>
Cheers,<br>
Pete<br>
</blockquote></div><br><div class="gmail_default" style="font-family:tahoma,sans-serif">​Precisely because I don't know how to ​"​convert any QVariant yourself"?  Because I don't mind "​additional one or two lines of code per type", or a switch, or whatever, but I don't know what those lines of codes are supposed to be?  Maybe you do, but I'm sorry I do not, that's what I'm asking.....</div><br clear="all"><br>-- <br><div class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><span style="font-family:tahoma,sans-serif">Kindest,</span></div><div><span style="font-family:tahoma,sans-serif">Jonathan</span></div></div></div></div></div>
</div></div>