Cpper
C/C++高级工程师 Android高级软件工程师 IT集成工程师 音频工程师 熟悉c,c++,java,c#,py,js,asp等多种语言 程序猿
就不费话了,直接点
来一个我做的插件例子

//! 插件基类
class PluginAddon : public QObject
{
 Q_OBJECT
public:
 
PluginAddon
(){}
 virtual ~
PluginAddon
(){}
public:
  ...
signals:
 void notify(const Target& t); 
};
Q_DECLARE_INTERFACE(
PluginAddon
,"ooo/1.0.0")

具体插件
class cPluginon : public PluginAddon
{
 Q_OBJECT
 // 将该接口注册到Qt的meta-object system
 Q_INTERFACES(PluginAddon)
public:
  ...
};

.cpp

Q_EXPORT_PLUGIN2(cplug_Plugin,cPluginon)
这个宏所在头文件是:
#include <QtPlugin>

至于插件的使用.
  loader = new QPluginLoader("dongrays_Plugin.dll");
 QObject* instance = loader->instance();
 if(instance)
 {
 interface = qobject_cast<Addon*>(instance);
 connect(interface,SIGNAL(notify(target)),this,SLOT(getInfo(target)));
 }

谈过connect照样可以再插件之前传送数据

posted on 2011-11-15 21:47 ccsdu2009 阅读(525) 评论(0)  编辑 收藏 引用 所属分类: QT编程

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理