【发布时间】: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,我认为它是比自己导入文件夹更好