QObject派生类作为Qt 插件的Interface
来源:互联网 发布:童装店收银软件 编辑:程序博客网 时间:2024/05/16 19:56
Qt例子中,插件接口用的是普通的C++类(非QObject派生类),那么能否使用QObject派生类作为插件接口呢。在尝试之前,先google一下,找到到Qt邮件列表中的两个thread,只有一个回复中提到了可以直接用,但却没有得到其他人的附和。
算了,还是自己来试试吧。
结果,运行正常。
代码
- mathinterface.h
#ifndef MATHINTERFACE_H#define MATHINTERFACE_H#include <QtCore/QObject>#include <QtCore/QtPlugin>class MathInterface:public QObject{ Q_OBJECTpublic: virtual ~MathInterface() {}signals: void sig2(int val);public slots: virtual void setValue(int val) = 0;};Q_DECLARE_INTERFACE(MathInterface, "com.example.Plugin.MathInterface/0.1");#endif
- plugin1.h
#ifndef PLUGIN1_H#define PLUGIN1_H#include <QtCore/QObject>#include "mathinterface.h"class Plugin1:public MathInterface{ Q_OBJECT Q_INTERFACES(MathInterface)public: Plugin1(QObject *parent=NULL); void setValue(int val);};#endif // PLUGIN1_H
- plugin1.cpp
#include "plugin1.h"Plugin1::Plugin1(QObject *parent){}void Plugin1::setValue(int val){ emit sig2(val);}Q_EXPORT_PLUGIN2(plugin1, Plugin1);
信号与槽工作均正常。
参考
http://doc.qt.nokia.com/4.7/plugins-howto.html#the-lower-level-api-extending-qt-applications
http://lists.trolltech.com/qt-interest/2006-11/thread00745-0.html
http://lists.qt.nokia.com/pipermail/qt-interest/2010-October/028135.html
- QObject派生类作为Qt 插件的Interface
- QObject派生类作为Qt 插件的Interface
- 使用Qt的QObject类实现多叉树
- QT 读 QObject类
- QObject是QT所有类的基类,QObject是Qt Object Model的核心
- QObject是QT所有类的基类
- Qt的句柄类和实体类-QObject和QOjectPrivate
- QObject是QT所有类的基类
- Qt定时器:QObject类的定时器和定时器类QTimer
- Qt的句柄类和实体类-QObject和QOjectPrivate
- Qt+halcon 第一个程序 QObject类的定时器应用
- 继承QObject类或其派生类时构建失败的解决方法
- QT QOBJECT
- Qt--QObject
- QT笔记:QObject::sender()的用法
- QT QObject::connect函数的学习
- QT学习:QObject::sender()的用法
- Qt中QObject::sender()的用法
- 优化UI体验:程序启动、页面切换、数据加载、UI响应
- 一个老程序员的建议——软件工程师之路
- To Do List
- javascript
- 每天写出好代码的5个建议——你也可以变优秀
- QObject派生类作为Qt 插件的Interface
- 慎重使用Get/Set成员函数(二)Set函数和其他修改函数的替代办法
- 无废话Ruby
- iphone学习笔记-UIImage读取图像资源
- clistctrl知识点总结、文件打开弹框以及一些小问题的解决
- 产品不要被技术绑架的十大注意事项
- 为什么新人不会编程
- 模态对话框
- 高内聚,低耦合的理解