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
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

guoruijun_2012_4

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值