PyQt6: QEvent.type() returns int instead of QEvent.Type
Florian Bruhin
me at the-compiler.org
Thu Apr 21 10:37:03 BST 2022
Hey,
With PyQt5:
>>> evtype = QEvent(QEvent.Type.User).type()
>>> evtype
1000
>>> type(evtype)
<class 'PyQt5.QtCore.QEvent.Type'>
and even:
>>> evtype = QEvent(QEvent.Type.User + 1).type()
>>> evtype
1001
>>> type(evtype)
<class 'PyQt5.QtCore.QEvent.Type'>
but with PyQt6, the type information gets lost:
>>> evtype = QEvent(QEvent.Type.User).type()
>>> evtype
1000
>>> type(evtype)
<class 'int'>
From what I understand, it's not possible to convert arbitrary values
into an IntEnum:
>>> QEvent.Type(QEvent.Type.User + 1)
[...]
ValueError: 1001 is not a valid QEvent.Type
But least for types which are part of QEvent.Type, calling .type()
should perhaps return the IntEnum value again instead of falling back to
an int without any type information? Given that IntEnum is an int
subclass, this should be a backwards-compatible change too.
Florian
--
me at the-compiler.org | https://www.qutebrowser.org
https://bruhin.software/ | https://github.com/sponsors/The-Compiler/
GPG: 916E B0C8 FD55 A072 | https://the-compiler.org/pubkey.asc
I love long mails! | https://email.is-not-s.ms/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <https://www.riverbankcomputing.com/pipermail/pyqt/attachments/20220421/d7d5c83f/attachment.sig>
More information about the PyQt
mailing list