1*4882a593Smuzhiyun /* 显示插件的基类,显示插件必须继承此类. 2*4882a593Smuzhiyun */ 3*4882a593Smuzhiyun #ifndef IWIDGET_H 4*4882a593Smuzhiyun #define IWIDGET_H 5*4882a593Smuzhiyun #include <QWidget> 6*4882a593Smuzhiyun #include "iplugin.h" 7*4882a593Smuzhiyun #include <processhandler.h> 8*4882a593Smuzhiyun #include <QDomElement> 9*4882a593Smuzhiyun #include <QDomNode> 10*4882a593Smuzhiyun #include <QProcess> 11*4882a593Smuzhiyun #include <QLoggingCategory> 12*4882a593Smuzhiyun #include <QHBoxLayout> 13*4882a593Smuzhiyun #include "ui_global.h" 14*4882a593Smuzhiyun 15*4882a593Smuzhiyun class QProcess; 16*4882a593Smuzhiyun class IWidgetBridge; Q_DECLARE_LOGGING_CATEGORY(flapp)17*4882a593SmuzhiyunQ_DECLARE_LOGGING_CATEGORY(flapp) 18*4882a593Smuzhiyun 19*4882a593Smuzhiyun class UI_LIBRARY IWidget : 20*4882a593Smuzhiyun public QWidget, 21*4882a593Smuzhiyun public IPlugin, 22*4882a593Smuzhiyun public ProcessHandler 23*4882a593Smuzhiyun { 24*4882a593Smuzhiyun public: 25*4882a593Smuzhiyun IWidget(QWidget *parent=NULL); 26*4882a593Smuzhiyun 27*4882a593Smuzhiyun virtual ~IWidget(); 28*4882a593Smuzhiyun virtual void loadData(const QDomElement &head, const QDomElement &body); 29*4882a593Smuzhiyun virtual void initUi(); 30*4882a593Smuzhiyun virtual void processMessage(const QString &info) override ; 31*4882a593Smuzhiyun IWidgetBridge* bridgt() const; 32*4882a593Smuzhiyun void setBrigde(IWidgetBridge* bridge); 33*4882a593Smuzhiyun private: 34*4882a593Smuzhiyun QProcess *m_process; 35*4882a593Smuzhiyun IWidgetBridge *m_bridge; 36*4882a593Smuzhiyun }; 37*4882a593Smuzhiyun 38*4882a593Smuzhiyun /*用于快速创建插件接口*/ 39*4882a593Smuzhiyun #define CreateSimplePlugin(classA, key, name, widget)\ 40*4882a593Smuzhiyun class classA: public IWidget \ 41*4882a593Smuzhiyun {\ 42*4882a593Smuzhiyun Q_OBJECT Q_PLUGIN_METADATA(IID PLUGIN_INTERFACE_iid FILE name)\ 43*4882a593Smuzhiyun public: \ 44*4882a593Smuzhiyun classA(QWidget *parent=NULL):IWidget(parent){QHBoxLayout*hLayoyt=new QHBoxLayout(this); hLayoyt->addWidget(widget);}\ 45*4882a593Smuzhiyun QString id(){return key;}\ 46*4882a593Smuzhiyun }; 47*4882a593Smuzhiyun 48*4882a593Smuzhiyun 49*4882a593Smuzhiyun #endif // IWIDGET_H 50