pyside6-metaobjectdump

pyside6-metaobjectdump 是一个命令行工具。它扫描 Python 源文件并以 JSON 格式输出要注册到 QML 的类的信息。这作为 pyside6-qmltyperegistrar 工具的输入。

该工具相当于Qt / C++中的moc工具。

它由pyside6-project工具自动运行,当传递qmllint参数时,指示它检查QML源文件。

用法

要在QML中注册的类通过QML装饰器如@QmlElement来指示。调用:

pyside6-metaobjectdump birthdayparty.py

在标准输出上生成JSON数据:

[
    {
        "classes": [
            {
                "className": "BirthdayParty",
                "qualifiedClassName": "BirthdayParty",
                "object": true,
                "superClasses": [
                    {
                        "access": "public",
                        "name": "QObject"
                    }
                ],
                "classInfos": [
                    {
                        "name": "QML.Element",
                        "value": "auto"
                    }
                ],
                "properties": [
                    {
                        "name": "host",
                        "type": "Person",
                        "index": 0,
                        "read": "host",
                        "notify": "host_changed",
                        "write": "host"
                    },
                    {
                        "name": "guests",
                        "type": "QQmlListProperty<Person>",
                        "index": 1
                    }
                ],
                "signals": [
                    {
                        "access": "public",
                        "name": "host_changed",
                        "arguments": [],
                        "returnType": "void"
                    },
                    {
                        "access": "public",
                        "name": "guests_changed",
                        "arguments": [],
                        "returnType": "void"
                    }
                ]
            }
        ],
        "outputRevision": 68,
        "QML_IMPORT_NAME": "People",
        "QML_IMPORT_MAJOR_VERSION": 1,
        "QML_IMPORT_MINOR_VERSION": 0,
        "QT_MODULES": [
            "QtCore",
            "QtQml"
        ],
        "inputFile": ".../examples/qml/tutorials/extending-qml-advanced/advanced1-Base-project/birthdayparty.py"
    }
]