首页 > 编程知识 正文

接口测试插件,l2tp搭建教程

时间:2023-05-04 12:22:22 阅读:155491 作者:3834

ctk框架插件化开发实现功能隔离,插件通信需要参考固定标准,这里介绍两种插件间通信的方法。 (第三个我不知道是什么……)还是以前一章的MainWindow为例,在主程序中用界面调用的方法弹出插件内的界面。 为了提供Qt小部件的接口,请先将main函数的QCoreApplication更改为QApplication。

在函数界面的前一章中,编译了所需的动态库。 首先,确定插件需要暴露在外的功能是什么。 例如,这里需要弹出界面的操作。 按如下方式定义头文件: imainwindow.h

# ifndefimainwindow _ h # defineimainwindow _ h # includeqobjectclassimainwindow { public 3360 virtualvoidpopmainwindow () }=q _ declare _ interface (imainwindow,' interface_mainwindow ' ) #endif //IMAINWINDOW_H

Q_DECLARE_INTERFACE将接口类添加到Qt系统鳗鱼奥特曼中,并添加其实现对象。

mainwindowplugin.h

# ifndefmainwindowplugin _ h # definemainwindowplugin _ h # includeqobject # include ' ./includes/imainwindow.h ' # include include ' main window DLG.h ' classmainwindowplugin : publicqobject,publicimainwindow { q _ objectq _ interfaces private : ctkplugincontext * m _ context; 主窗口DLG * m _ window DLG; (; #endif //MAINWINDOWPLUGIN_H

mainwindowplugin.cpp

# include ' main window plugin.h ' main window plugin 33603360 main window plugin (ctkplugincontext * context ) 3360 m _ context } }这仍然是Qt的插件定义格式,但不作为插件导出,您可以自定义外部功能界面。

服务注册功能部分接口完成后,在插件启动时注册ctk框架的服务。 代码如下所示。 主窗口activator.CPP

voidmainwindowactivator :3360开始(ctkplugincontext * context ) { qDebug ) '主窗口开始'; m _ plugin=newmainwindowplugin (context ); ctk dictionary光盘; context-registerserviceimainwindow (m _ plugin,dic ); }

接口调用

完成主函数框架和插件的加载后,可以调用插件界面。 代码如下所示。 main.cpp

# include ' ./includes/imainwindow.h ' . ctkplugincontext * context=framework-getplugincontext (; ckservicereferenceref=上下文- getservicereferenceimainwindow (; imainwindow *主窗口; if(ref )主窗口=context-getserviceimainwindow ) ref; 主窗口(if )主窗口-最小窗口(popmain window );

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。