本文整理汇总了C++中QPluginLoader::metaData方法的典型用法代码示例。如果您正苦于以下问题:C++ QPluginLoader::metaData方法的具体用法?C++ QPluginLoader::metaData怎么用?C++ QPluginLoader::metaData使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QPluginLoader
的用法示例。
在下文中一共展示了QPluginLoader::metaData方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: scanPlugins
void PluginManager::scanPlugins(bool initialScan) {
if (initialScan) {
QFileInfoList list = _pluginPath.entryInfoList();
for (QFileInfo info : list) {
QPluginLoader* loader = new QPluginLoader(info.absoluteFilePath(), this);
QJsonObject metaData = loader->metaData().value("MetaData").toObject();
const QString name = metaData.value("name").toString("Unknown");
const QString role = metaData.value("role").toString("Unknown");
// Ensure IID is inserted.
metaData.insert("IID", loader->metaData().value("IID"));
AdamantPluginInfo* data = new AdamantPluginInfo;
data->state = PluginState::Unknown;
data->name = name;
data->role = role;
data->metaData = metaData;
data->instance = nullptr;
data->script = nullptr;
data->loader = nullptr;
data->file = info;
data->lastModified = info.lastModified();
_pluginsByRole.insertMulti(role, data);
emit pluginDiscovered(name);
loader->deleteLater();
}
}
}
示例2: dump_metadata
void DefaultManager::dump_metadata(const QPluginLoader& loader) const
{
const auto meta = loader.metaData();
qDebug() << meta.value("MetaData").toObject().value("name");
qDebug() << meta.value("MetaData").toObject().value("version");
qDebug() << meta.value("MetaData").toObject().value("dependencies");
}
示例3: load_all
void plugin_factory::load_all()
{
auto file_list = QDir(plugindir_).entryInfoList(
QDir::Files | QDir::NoDotAndDotDot);
for (auto const &info : file_list) {
auto p = info.absoluteFilePath();
QPluginLoader *ld;
if ((ld = load_plugin(p)) != 0) {
qDebug() << "Loaded plugin" << p;
plugins_.insert(ld->metaData().value("IID").toString(), ld);
} else
qDebug() << p << "is not an acv plugin";
}
}