@QmlForeign#

此装饰器可用于更改由 QML 创建的类型。

这对于注册无法通过添加 QmlElement 装饰器修改的类型很有用,例如,因为它们属于第三方库。

QML_IMPORT_NAME = "com.library.name"
QML_IMPORT_MAJOR_VERSION = 1
QML_IMPORT_MINOR_VERSION = 0 # Optional

@QmlNamedElement("QWidget")
@QmlForeign(QWidget)
class ForeignWidgetHelperClass(QObject):
      ...

此后,该类可以在 QML 中使用。

import com.library.name 1.0

QWidget {
    // ...
}