#ifndef __PLUGINMANAGER_H__ #define __PLUGINMANAGER_H__ #include #include #include #include "pluginloader.h" typedef struct { QString fileName; QString filePath; bool isEnabled; }plugin_info_st; class PluginManager : public QObject { Q_OBJECT public: explicit PluginManager(QObject *parent = nullptr); ~PluginManager(); const QJsonObject pluginInfo(); void initPluginInfo(); void savePluginInfo(); void loadPlugins(); void loadPlugin(QString fileName); void unloadPlugin(QString fileName); bool updatePluginInfo(QString fileName, bool isEnabled); bool delPlugin(QString fileName, bool kepInfo = false); bool upgradePlugin(QString fileName, QString srcFile); bool addPlugin(QString srcFile); bool contains(QString fileName); void clear(); QList pluginInfoList() const; QList customWidgets() const; private: QMap m_pluginInfoMap; QMap m_pluginLoaderMap; QList m_customWidgets; // 插件控件列表 }; #endif // PLUGINMANAGER_H