diff --git a/src/tools/uic/python/pythonwriteimports.cpp b/src/tools/uic/python/pythonwriteimports.cpp index ec4968da2ff..0d295b483d5 100644 --- a/src/tools/uic/python/pythonwriteimports.cpp +++ b/src/tools/uic/python/pythonwriteimports.cpp @@ -233,16 +233,31 @@ void WriteImports::addPythonCustomWidget(const QString &className, const DomCust void WriteImports::acceptProperty(DomProperty *node) { - if (node->kind() == DomProperty::Enum) { - // Add base classes like QFrame for QLabel::frameShape() - const QString &enumV = node->elementEnum(); - const auto colonPos = enumV.indexOf(u"::"); - if (colonPos > 0) - addQtClass(enumV.left(colonPos)); + switch (node->kind()) { + case DomProperty::Enum: + addEnumBaseClass(node->elementEnum()); + break; + case DomProperty::Set: + addEnumBaseClass(node->elementSet()); + break; + default: + break; } + WriteIncludesBase::acceptProperty(node); } +void WriteImports::addEnumBaseClass(const QString &v) +{ + // Add base classes like QFrame for QLabel::frameShape() + const auto colonPos = v.indexOf(u"::"); + if (colonPos > 0) { + const QString base = v.left(colonPos); + if (base.startsWith(u'Q') && base != u"Qt") + addQtClass(base); + } +} + } // namespace Python QT_END_NAMESPACE diff --git a/src/tools/uic/python/pythonwriteimports.h b/src/tools/uic/python/pythonwriteimports.h index c833e216a6e..05cf48c1a15 100644 --- a/src/tools/uic/python/pythonwriteimports.h +++ b/src/tools/uic/python/pythonwriteimports.h @@ -55,6 +55,7 @@ protected: private: void addPythonCustomWidget(const QString &className, const DomCustomWidget *dcw); bool addQtClass(const QString &className); + void addEnumBaseClass(const QString &v); void writeImport(const QString &module); QHash m_classToModule;