You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 22:12:34