ctk plugin window c++ qt 编译问题

5 篇文章 0 订阅
1 篇文章 0 订阅

1、在window编译ctk 源码 需要安装 cmake工具

在这里插入图片描述

2、ctk 源代码在官网上下载,源码文件如下图不包含build 开头文件夹

在这里插入图片描述

3、ctk 源码在window编译时报错需要添加
CTK_QT_VERSION (to 5)
CMAKE_PREFIX_PATH (with the path to the cmake folder in Qt)

参照链接

https://blog.csdn.net/weixin_42326802/article/details/88075572?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

https://blog.csdn.net/houqd2012/article/details/37937755

https://www.twblogs.net/a/5b8cf3ea2b7177188337557f

4、ctk编译完成后,开发自己的代码需要注意
在pro文件中加入下图 指定的

TEMPLATE = app
TARGET = simplebrowser
QT += webenginewidgets

HEADERS += \
    browser.h \
    browserwindow.h \
    dialogplugin.h \
    downloadmanagerwidget.h \
    downloadwidget.h \
    eventlistener.h \
    mainwindow.h \
    pluginservice.h \
    tabwidget.h \
    webpage.h \
    webpopupwindow.h \
    webview.h

SOURCES += \
    browser.cpp \
    browserwindow.cpp \
    dialogplugin.cpp \
    downloadmanagerwidget.cpp \
    downloadwidget.cpp \
    eventlistener.cpp \
    main.cpp \
    mainwindow.cpp \
    tabwidget.cpp \
    webpage.cpp \
    webpopupwindow.cpp \
    webview.cpp

FORMS += \
    certificateerrordialog.ui \
    dialogplugin.ui \
    mainwindow.ui \
    passworddialog.ui \
    downloadmanagerwidget.ui \
    downloadwidget.ui

RESOURCES += data/simplebrowser.qrc

# install
target.path = $$[QT_INSTALL_EXAMPLES]/webenginewidgets/simplebrowser
INSTALLS += target

LIBS += E:\CTK-20200304\build-64-1\CTK-build\bin\Debug\CTKCore.lib
LIBS += E:\CTK-20200304\build-64-1\CTK-build\bin\Debug\CTKPluginFramework.lib

INCLUDEPATH += E:\CTK-20200304\Libs\PluginFramework

在这里插入图片描述

斜体样式

5、启动插件代码

 //QString path ="/home/grj/Desktop/Qt_HTYBrowser-master/plugins";
    QString path = QApplication::applicationDirPath() + "/plugins";
    qDebug() << "path:" << path << "\r\n";
    ctkPluginFrameworkLauncher::addSearchPath(path);
    //set and start CTK Plugin System
    ctkPluginFrameworkLauncher::start("org.commontk.eventadmin");
    //get plugin context
    context = ctkPluginFrameworkLauncher::getPluginContext();
    // event listener
    EventListener listener;
    context->connectFrameworkListener(&listener, SLOT(onFrameworkEvent(ctkPluginFrameworkEvent)));
    context->connectPluginListener(&listener, SLOT(onPluginEvent(ctkPluginEvent)));
    context->connectServiceListener(&listener, "onServiceEvent"); //, filter);
    qDebug() << "EventListener:"  << "\r\n";
    try {
        qDebug() << "try start :"  << "\r\n";
        QSharedPointer<ctkPlugin> plugin = context->installPlugin(QUrl::fromLocalFile(fileInfo->at(row).absoluteFilePath()));

        // 获取清单头和值
        QHash<QString, QString> headers = plugin->getHeaders();
        qDebug() << "Headers:" << headers << "\r\n";
        // 获取符号名
        QString symb = plugin->getSymbolicName();
        qDebug() << "Symbolic Name:" << symb << "\r\n";
        plugin->start(ctkPlugin::START_TRANSIENT);
        qDebug() << "Plugin start ...";
        ctkServiceReference reference = context->getServiceReference<PluginService>();
        if (reference) {
            PluginService* service = qobject_cast<PluginService *>(context->getService(reference));
            if(service != Q_NULLPTR) {
                service->doSomeThing();
                QWidget* w = service->getWidget();
                ui->tabWidget->addTab(w,QIcon(":/bookmark_on.png"),"plugin");
                //ui->tabWidget->setCurrentIndex(ui->tabWidget->count()-1);
            }
        }
    } catch(const ctkPluginException &e) {
        qDebug() << "Failed to install plugin" << e.what();
        return;
    }

6、具体程序逻辑 根据自己需要来写
7、源码 下载 地址
https://github.com/knowledge0603/ctk-source
或git上检索 ctk 下载最新官网代码
ctk 例子下载地址
https://github.com/knowledge0603/ctk-demo-plugin-qt
ctk plugin 结合 浏览器 开发 例子
https://github.com/knowledge0603/browser

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CTK(Common Toolkit)是一个基于Qt的开源框架,旨在为医学图像处理和分析提供易于使用的工具。以下是在C++ Qt中搭建CTK框架的步骤: 1. 下载CTK框架 可以从CTK官网下载CTK框架。下载后,解压缩文件到本地文件夹。 2. 在Qt中添加CTK框架 在Qt中选择菜单栏的“项目”->“添加库”,然后选择“外部库”->“Qt添加库向导”。在向导中,选择“静态库”,然后选择CTK框架的文件夹路径。在完成添加后,确保在项目文件中包含CTK库的头文件和库文件。 3. 创建CTK模块 在Qt中创建一个新的Qt工程,并添加一个CTK模块。在项目视图中,右键单击项目并选择“添加新项”,然后选择“CTK模块”。在向导中,输入模块名称和模块路径,选择要使用的模块类型。在完成向导后,Qt将自动创建一个CTK模块,并将其添加到项目中。 4. 编写CTK插件 在CTK模块中,可以创建一个或多个CTK插件。CTK插件是可加载的Qt插件,用于扩展应用程序的功能。在Qt中创建一个新的Qt工程,并添加一个CTK插件。在项目视图中,右键单击项目并选择“添加新项”,然后选择“CTK插件”。在向导中,输入插件名称和插件路径,选择要使用的插件类型。在完成向导后,Qt将自动创建一个CTK插件,并将其添加到项目中。 5. 将CTK插件添加到应用程序中 在应用程序中,可以通过加载CTK插件来添加新功能。在Qt中,可以使用QPluginLoader类来加载CTK插件。使用QPluginLoader类加载CTK插件后,可以使用插件的接口来访问其功能。 以上就是在C++ Qt中搭建CTK框架的基本步骤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值