// uiCommunicationBus.h #pragma once #include "export.hpp" #include #include #include #include // UI通信总线 class DIAGRAM_DESIGNER_PUBLIC UiCommunicationBus : public QObject { Q_OBJECT public: static UiCommunicationBus* instance(); // 发送HTTP请求 void sendHttpRequest(const QString& endpoint, const QVariant& data = QVariant()); // 发送HTTP请求(无回复) void sendHttpRequestNoReply(const QString& endpoint, const QVariant& data = QVariant()); // 向UI发送数据 void sendToUi(const QString& uiId, const QString& action, const QVariant& data); // 广播到所有UI void broadcastToUis(const QString& action, const QVariant& data); // 注册/注销UI void registerUi(const QString& uiId, QObject* uiObject); void unregisterUi(const QString& uiId); signals: void httpDataProcessed(const QString& type,const QVariant& data); //发送分拣过的数据给外部 void websocketDataProcessed(const QVariant& data); private: UiCommunicationBus(QObject* parent = nullptr); // 处理HTTP响应 void onHttpDataReceived(const QByteArray& data); // 处理WebSocket数据 void onWebSocketDataReceived(const QByteArray& data); // UI注册表 QMap m_uiObjects; mutable QMutex m_mutex; };