/* 显示插件的基类,显示插件必须继承此类. */ #ifndef IWIDGET_H #define IWIDGET_H #include #include "iplugin.h" #include #include #include #include #include #include #include "ui_global.h" class QProcess; class IWidgetBridge; Q_DECLARE_LOGGING_CATEGORY(flapp) class UI_LIBRARY IWidget : public QWidget, public IPlugin, public ProcessHandler { public: IWidget(QWidget *parent=NULL); virtual ~IWidget(); virtual void loadData(const QDomElement &head, const QDomElement &body); virtual void initUi(); virtual void processMessage(const QString &info) override ; IWidgetBridge* bridgt() const; void setBrigde(IWidgetBridge* bridge); private: QProcess *m_process; IWidgetBridge *m_bridge; }; /*用于快速创建插件接口*/ #define CreateSimplePlugin(classA, key, name, widget)\ class classA: public IWidget \ {\ Q_OBJECT Q_PLUGIN_METADATA(IID PLUGIN_INTERFACE_iid FILE name)\ public: \ classA(QWidget *parent=NULL):IWidget(parent){QHBoxLayout*hLayoyt=new QHBoxLayout(this); hLayoyt->addWidget(widget);}\ QString id(){return key;}\ }; #endif // IWIDGET_H