当前位置: 首页>>代码示例>>C++>>正文


C++ QQmlType::baseMetaObject方法代码示例

本文整理汇总了C++中QQmlType::baseMetaObject方法的典型用法代码示例。如果您正苦于以下问题:C++ QQmlType::baseMetaObject方法的具体用法?C++ QQmlType::baseMetaObject怎么用?C++ QQmlType::baseMetaObject使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在QQmlType的用法示例。


在下文中一共展示了QQmlType::baseMetaObject方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: registerSingletonType

int registerSingletonType(const QQmlPrivate::RegisterSingletonType &type)
{
    QWriteLocker lock(metaTypeDataLock());
    QQmlMetaTypeData *data = metaTypeData();
    QString typeName = QString::fromUtf8(type.typeName);
    if (!checkRegistration(QQmlType::SingletonType, data, type.uri, typeName))
        return -1;

    int index = data->types.count();

    QQmlType *dtype = new QQmlType(index, typeName, type);

    data->types.append(dtype);
    data->idToType.insert(dtype->typeId(), dtype);

    if (!dtype->elementName().isEmpty())
        data->nameToType.insertMulti(dtype->elementName(), dtype);

    if (dtype->baseMetaObject())
        data->metaObjectToType.insertMulti(dtype->baseMetaObject(), dtype);

    if (type.typeId) {
        if (data->objects.size() <= type.typeId)
            data->objects.resize(type.typeId + 16);
        data->objects.setBit(type.typeId, true);
    }

    if (!dtype->module().isEmpty()) {
        const QHashedString &mod = dtype->module();

        QQmlMetaTypeData::VersionedUri versionedUri(mod, type.versionMajor);
        QQmlTypeModule *module = data->uriToModule.value(versionedUri);
        if (!module) {
            module = new QQmlTypeModule;
            module->d->uri = versionedUri;
            data->uriToModule.insert(versionedUri, module);
        }
        module->d->add(dtype);
    }

    return index;
}
开发者ID:ghjinlei,项目名称:qt5,代码行数:42,代码来源:qqmlmetatype.cpp


注:本文中的QQmlType::baseMetaObject方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。