导入过程中出现警告

此警告类别包含多个警告

导入模块失败

发生了什么?

通过导入语句导入的模块未找到。

例如,这可能是由于

  • 导入语句中的拼写错误,或者
  • 未构建的用户定义模块,或者
  • 错误的导入路径,或者
  • 缺少模块

为什么这很糟糕?

应用程序无法运行,因为它找不到其所依赖的模块。

示例

导入语句中的拼写错误

import QtQuicky // not ok: typo in module name

Item {
}

您可以通过纠正拼写错误来解决此警告

import QtQuick // ok: no typo in module name

Item {
}

未构建的用户定义模块

一些工具,如QML 语言服务器qmllint,在用户定义模块未构建时无法找到它们。如果您的项目定义了您尝试导入的 QML 模块,那么在构建之前 QML 工具将无法找到它。

注意:如果在使用QML 语言服务器时构建模块没有帮助,请遵循QML 语言服务器设置说明,并确保您已将正确的构建文件夹传达给 QML 语言服务器。

错误的导入路径

有关导入路径的更多信息,请参阅QML 导入路径文档模块导入调试文档

缺少模块

如果前面的部分没有帮助找到导入的模块,它可能缺失。这可能是由于缺少依赖项造成的。当使用外部库时,请确保它们确实已安装,并且它们的模块最终出现在一个导入路径中。

组件未找到

发生了什么?

某些组件未找到。

为什么这很糟糕?

应用程序无法运行,因为它无法实例化未找到的组件。

示例

组件名称拼写错误

import QtQuick

Item {
    Itemy {} // not ok: typo in name
}

您可以通过纠正拼写错误来解决此警告

import QtQuick

Item {
    Item {} // ok: no typo in name
}

缺少导入语句

Item { // not ok: must be imported from QtQuick first
}

您可以通过添加缺失的模块导入来解决此警告

import QtQuick

Item { // ok: was imported from QtQuick
}

导入限定符必须以大写字母开头

发生了什么?

某些导入的模块具有无效的限定符。

为什么这很糟糕?

使用此无效限定符导入的模块不能使用。

示例

import QtQuick as qq

qq.Item {
}

您可以通过将导入限定符以大写字母开头来修复此警告。

import QtQuick as Qq

Qq.Item {
}

未知导入语法

发生了什么?

导入语句正在使用无效的 导入语法

为什么这很糟糕?

由于无法导入它所依赖的模块,应用程序无法运行。

示例

import "¯\(ツ)/¯:/path/to/Module"
import QtQuick

Item {
}

您可以通过使用允许的方案来修复此警告。

import "qrc:/path/to/Module"
import QtQuick

Item {
}

注意: 此示例假定您没有使用URL处理器

另见 导入语句

© 2024 The Qt Company Ltd. 本文件包含的文档贡献是各自拥有者的版权。本文档提供的是根据自由软件基金会发布的 GNU自由文档许可协议版本1.3 的条款许可的。Qt及其相关标志是芬兰及世界各地The Qt Company Ltd.的商标。所有其他商标均为其各自所有者的财产。