[PyQt] PyQt 5.5 gives TypeError: invalid result type from model.roleNames()

Phil Thompson phil at riverbankcomputing.com
Fri Jul 10 17:40:53 BST 2015


On 08/07/2015 5:50 pm, Nenad Ognjanovic wrote:
> Hello,
> I've tried out the latest snapshots of PyQt and SIP with Qt 5.5.0, and
> I've been getting the following error that didn't happen in previous
> versions:
> 
> TypeError: invalid result type from my_model.roleNames()
> 
> I've extracted the minimal example that reproduces the problem, I've
> attached it to this email and as a gist here:
> https://gist.github.com/bgr/0fd25c6808260e0b5d0a
> 
> Is this a bug or are we now expected to wrap the dict into some kind
> of JSValue wrapper or similar?

It's a bug in your code, see...

http://pyqt.sourceforge.net/Docs/PyQt5/deprecations.html#conversion-of-latin-1-strings-to-qbytearray

...you just need to use b"hello" rather than "hello".

However I have made changes in tonight's SIP and PyQt5 snapshots so that 
the error now reads...

TypeError: invalid result from DummyModel.roleNames(), a dict value has 
type 'str' but 'QByteArray' is expected

...which is hopefully more helpful.

Phil


More information about the PyQt mailing list