如何在Qt Quick应用中使用Qt Quick插件?解决模块找不到问题
Qt无法找到导入的模块
我用qmake和make命令构建插件后,会生成一个名为release的目录,其中包含.dll文件。
我的问题是:如何在Qt Quick应用中使用该插件?
我已尝试在.pro文件中添加QML_IMPORT_PATH += C:/Programming/Qt/test2/release,并在main.qml文件中导入myplugin 1.0,但运行应用时仍找不到导入的插件。
以下是我写的仅发送带消息信号的简单插件示例:
插件代码示例
myitem.h
#ifndef MYITEM_H #define MYITEM_H #include <QObject> #include <QString> #include <QTimer> #include <QDebug> class MyItem : public QObject { Q_OBJECT public: explicit MyItem(QObject *parent = nullptr); ~MyItem(); signals: void mySignal(const QString &message); public slots: void sendMessage(); }; #endif // MYITEM_H
myitem.cpp
#include "myitem.h" MyItem::MyItem(QObject *parent) : QObject(parent) { QTimer::singleShot(1000, this, &MyItem::sendMessage); } MyItem::~MyItem() {} void MyItem::sendMessage() { qDebug() << "Sending signal with message: Hello from C++!"; emit mySignal("Hello from C++!"); }
test2_plugin.h
#ifndef TEST2_PLUGIN_H #define TEST2_PLUGIN_H #include <QQmlExtensionPlugin> class Test2Plugin : public QQmlExtensionPlugin { Q_OBJECT Q_PLUGIN_METADATA(IID QQmlExtensionInterface_iid) public: void registerTypes(const char *uri) override; }; #endif // TEST2_PLUGIN_H
test2plugin.cpp
#include "test2_plugin.h" #include "myitem.h" #include <qqml.h> void Test2Plugin::registerTypes(const char *uri) { // @uri myplugin qmlRegisterType<MyItem>(uri, 1, 0, "MyItem"); }
qmldir文件内容
module myplugin plugin test2
内容的提问来源于stack exchange,提问作者joonakaikkonen
相关产品推荐
相关产品推荐

