QML 错误“未知组件。(M300)”但代码有效

Posted

技术标签:

【中文标题】QML 错误“未知组件。(M300)”但代码有效【英文标题】:QML error "Unknown component. (M300)" but the code works 【发布时间】:2016-06-28 05:13:03 【问题描述】:

我想在 QML 应用程序中使用自定义字体,并且不必在每个文本字段中指定它,我使用 this answer 中建议的组件。

我的qml.qrcstyles 前缀下有一个DefaultText.qml,它位于文件夹styles 中。

import QtQuick 2.0

Text 
    color: "black"
    font.family: myCustomFont.name
    font.bold: false
    font.italic: false
    font.pixelSize: 14

我在一个名为PanelRight.qml 的qml 中使用它,在widgets 文件夹中的前缀Panels 下。都在同一个qml.qrc下。

import "qrc:/styles/styles"

Item

    // ...
    DefaultText  text: "xyz" 

有趣的是,DefaultText 带有下划线作为错误,消息“未知组件。(M300)”。但是,我可以成功编译并运行我的应用程序,并且自定义字体正确显示。但是,令人讨厌的是我有一长串错误(我打算在很多地方使用它)并且自动完成不起作用。

我搜索了 Qt 论坛,在我不使用的自定义插件的情况下,那里提到了这个问题。

【问题讨论】:

【参考方案1】:

PanelRight.qml文件中添加DefaultText.qml的相对路径为

import "../styles"

【讨论】:

以上是关于QML 错误“未知组件。(M300)”但代码有效的主要内容,如果未能解决你的问题,请参考以下文章

多个屏幕但 self.root.id 返回错误

QML 数组未定义检查

qml 函数的默认参数给出语法错误

pyqt5 孩子使用 qml 文件访问

在 qml 中使用 createComponent 但状态总是错误

连接滑块以控制 qml 相机的缩放