#ifndef TOOLBARCONFIG_H #define TOOLBARCONFIG_H /********************toolbar配置类*******************/ #include #include #include #include #include struct ToolInfo { QString type; // 工具类型标识符 QString name; // 显示名称 QString iconPath; // 图标路径 QVariantMap properties; // 自定义属性 ToolInfo() = default; ToolInfo(const QString &type, const QString &name, const QString &iconPath = QString()) : type(type), name(name), iconPath(iconPath) {} QIcon getIcon() const; }; class ToolBarConfig : public QObject { Q_OBJECT public: explicit ToolBarConfig(QObject *parent = nullptr); // 加载配置 bool loadFromFile(const QString &filePath); bool loadFromJson(const QByteArray &jsonData); // 获取工具 ToolInfo getTool(const QString &type) const; QList getAllTools() const; QStringList getToolTypes() const; // 工具数量 int count() const { return m_tools.size(); } // 检查工具是否存在 bool contains(const QString &type) const; private: QMap m_tools; void addDefaultTools(); ToolInfo parseTool(const QJsonObject &json); }; #endif