Qml调用插件

作者: zhengtianzuo | 来源:发表于2018-11-29 20:21 被阅读0次

创建一个带Qml窗体的动态库, 接口文件如下:

#include <QQmlApplicationEngine>
#include <QtCore/qglobal.h>

#if defined(QTDLL_LIBRARY)
#  define QTDLLSHARED_EXPORT Q_DECL_EXPORT
#else
#  define QTDLLSHARED_EXPORT Q_DECL_IMPORT
#endif

class QTDLLSHARED_EXPORT QmlPlugin
{
public:
    void ShowWindow();

private:
    QQmlApplicationEngine engine;
};

extern "C" QTDLLSHARED_EXPORT void ShowWindowApp();

通过调用接口来加载和显示qml文件

void QmlPlugin::ShowWindow()
{
    engine.load(QUrl(QLatin1String("qrc:/QmlPlugin.qml")));
}

void ShowWindowApp()
{
    QmlPlugin *pp = new QmlPlugin;
    pp->ShowWindow();
}

调用方加载和调用插件中的接口函数:
注意dll的路径

    typedef void(*FUN1)();
    QLibrary lib(QCoreApplication::applicationDirPath() + "/plugins/QmlPlugin/QmlPlugin.dll");
    if (lib.load())
    {
        FUN1 pShow = (FUN1)lib.resolve("ShowWindowApp");
        if (pShow)
        {
            pShow();
        }
        else
        {
            qDebug() << "fun error";
        }
    }
    else
    {
        qDebug() << "load error";
    }
show.gif

需要完整代码请访问QtQuickExamples

相关文章

  • Qml调用插件

    创建一个带Qml窗体的动态库, 接口文件如下: 通过调用接口来加载和显示qml文件 调用方加载和调用插件中的接口函...

  • Qt/QML 插件系统

    Qt/QML 插件系统 本文将简要介绍一下 Qt 和 QML 的插件系统,并用几个简单的示例介绍 QML 的几种插...

  • C++调用QML代码

    C++调用QML实际上就是通过 QML 对象的指针去访问QML对象的属性和方法 只要获取到QML对象的指针,接下来...

  • QWidget 调用 QML 插件中的对象

    目标 为实现从QML字符串中创建QML对象,并显示在基于QWidget项目工程中,且这个QML对象所属类型来自QM...

  • QmlLoader

    qml中可以使用Loader来加载并显示qml文件 调用 就可以加载对应的qml文件并显示了 需要完整代码请访问Q...

  • Qt Quick 学习笔记(二) QML与C++双向对接

    QML→C++的对接 信号槽机制 大部分情况下,用户对QML的操作,需要调用对应的C++函数进行处理。QML上的操...

  • QT qml material 使用

    一.插件介绍 https://github.com/papyros/qml-material相对于内置QtQuci...

  • Qt quick 存在的问题

    在 qml 中调用 .cpp 中函数不便 通过此种方式调用的类,在 Qt Creator 中,调用时会遇到一些问题...

  • Flutter 与 Android 相互调用、传递参数

    Flutter 调用原生 Android 定义插件 Android 插件注册 Flutter 调用原生插件 原生调...

  • tabs插件

    tabs插件 插件调用

网友评论

    本文标题:Qml调用插件

    本文链接:https://www.haomeiwen.com/subject/pqkqcqtx.html