【问题标题】:QML import style file from subdirectoryQML 从子目录导入样式文件
【发布时间】:2015-08-16 17:40:40
【问题描述】:

我在从子目录导入样式文件时遇到问题。

这是我的 *.pro 文件中的相关部分:

QML_IMPORT_PATH = \
src/gui/qml/views/startview/ \
src/gui/qml/views/createlocalgameview/ \
src/gui/qml/views/ \
src/gui/qml/components/styles/ \
src/gui/qml/components/ \
src/gui/qml/js/

例如我有一个文件 MyTextFieldStyle.qml 放在 src/gui/qml/components/styles/:

TextFieldStyle {
    [...]
}

我在 src/gui/qml/components/ 中有一个文件 TextArea.qml:

Item {
    [...]
    TextField {
        id: textField
        style: MyTextFieldStyle {}
    }
    [...]
}

现在我得到这个错误:

TextArea.qml: MyTextFieldStyle is not a type

如果我将 MyTextFieldStyle.qml 放在与 TextArea.qml (src/gui/qml/components/) 相同的目录中,它可以正常工作。但是我有许多组件和许多样式,因此我想将它们分开以获得更好的概览。有什么办法可以让这个工作吗?

【问题讨论】:

  • 在文件顶部放置一个带有相对路径的import 语句就足够了。在您的示例中,您可以使用import './styles'。让我知道它是否有效,我可以创建一个响应,以便您可以接受它以供将来搜索。
  • 注意:这个 QML_IMPORT_PATH *rap 不会影响任何东西,除了可能是创建者突出显示(惊喜!):0
  • 是的,你是对的。非常感谢你。请创建一个我可以接受的答案!
  • 为了让您的 QML_IMPORT_PATH 工作,您应该在目录样式中创建一个 qmldir 文件,在其中编写模块样式 MyTextFieldStyle 1.0 MyTextFieldStyle.qml,并在您的 qml 中导入样式 1.0,我认为它是比自己导入文件夹更好

标签: qt qml qtquick2


【解决方案1】:

在文件顶部放置一个带有相对路径的import 语句就足够了。

在您的示例中,您可以使用import './styles'

如 cmets 中所述,QML_IMPORT_PATH 并非旨在解决该问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-18
    • 1970-01-01
    • 2014-11-28
    • 2019-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多