[PyQt] Getting parent class for an enum
phil at riverbankcomputing.com
Thu May 17 09:55:27 BST 2018
On 17 May 2018, at 9:38 am, Florian Bruhin <me at the-compiler.org> wrote:
> On Thu, May 17, 2018 at 09:23:56AM +0100, Phil Thompson wrote:
>> On 16 May 2018, at 1:57 pm, Denis Rouzaud <denis.rouzaud at gmail.com> wrote:
>>> In the case of an enum (with Q_ENUM macro), it would be interesting to have a way to get the parent class to be able to get the meta enum from the enum value (enumValue):
>>> base = type(enumValue).parentClass()
>>> idx = base.staticMetaObject.indexOfEnumerator(type(enumValue).__name__)
>>> metaenum = base.staticMetaObject.enumerator(idx)
>>> Would it be possible to add this capability to sip.enumType ?
>>> Either to return the parent class or directly the metaEnum?
>> Are you asking for an implementation of QMetaEnum.fromType()?
>> For example...
>> metaenum = QMetaEnum.fromType(type(Qt.Key_F1))
> That'd be useful indeed, IMHO!
>>> Phil, how complicate is it?
>>> Do you have any interest/plan to do it...?
>> It shouldn't be too difficult (famous last words). This area needs an update anyway to add support for Q_ENUM(), Q_FLAG() and Python enum objects.
> Oh, if PyQt enums would be a subclass of Python's enum.Enum (or
> enum.IntEnum) objects - that'd be nice! :)
C++ scoped enums are implemented as Python enums, but there are very few of them in Qt at the moment. Changing the implementation of traditional enums would (IMHO) cause compatibility issues.
More information about the PyQt