qt实现最简单的插件

qt实现最简单的插件MyPlugin

欢迎大家来到IT世界,在知识的湖畔探索吧!

MyPlugin.h头文件 #ifndef MYPLUGIN_H

欢迎大家来到IT世界,在知识的湖畔探索吧!

欢迎大家来到IT世界,在知识的湖畔探索吧!#define MYPLUGIN_H #include <QObject> class MyPlugin : public QObject { Q_OBJECT Q_PLUGIN_METADATA(IID "com.example.MyPlugin" FILE "MyPlugin.json") public: explicit MyPlugin(QObject *parent = nullptr); Q_INVOKABLE void doSomething(); private: }; #endif // MYPLUGIN_H
 MyPlugin.cpp内容 #include "myplugin.h" #include <QDebug> MyPlugin::MyPlugin(QObject *parent) : QObject(parent) { } void MyPlugin::doSomething() { qDebug()<<"MyPlugin::doSomething"; } 

pro文件如下

欢迎大家来到IT世界,在知识的湖畔探索吧!QT += gui core
TEMPLATE = lib CONFIG += plugin CONFIG += c++11 # You can make your code fail to compile if it uses deprecated APIs. # In order to do so, uncomment the following line.
欢迎大家来到IT世界,在知识的湖畔探索吧!#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
SOURCES += \ myplugin.cpp HEADERS += \ myplugin.h DISTFILES += MyPlugin.json # Default rules for deployment. !isEmpty(target.path): INSTALLS += target QPluginLoader loader("E:/workspace_qt/future/MyPlugin.dll"); //替换为实际路径 QObject *plugin = loader.instance(); if (plugin) { const QMetaObject *metaObject = plugin->metaObject(); // 获取插件的元数据信息 qDebug()<<metaObject->className(); qDebug()<<"methodcount="<<metaObject->methodCount(); for(int i=0;i < metaObject->methodCount();++i) { QMetaMethod curMethod = metaObject->method(i); qDebug()<<curMethod.name(); } metaObject->invokeMethod(plugin,"doSomething"); } else { qDebug()<<"fail load MyPlugin"; }

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/144742.html

(0)
上一篇 18分钟前
下一篇 3分钟前

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们YX

mu99908888

在线咨询: 微信交谈

邮件:itzsgw@126.com

工作时间:时刻准备着!

关注微信