Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt QML从子目录导入样式文件_Qt_Qml_Qtquick2 - Fatal编程技术网

Qt QML从子目录导入样式文件

Qt QML从子目录导入样式文件,qt,qml,qtquick2,Qt,Qml,Qtquick2,我在从子目录导入样式文件时遇到问题 这是my*.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/ 例如,我在src/gui/qml/compone

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

这是my*.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/
例如,我在src/gui/qml/components/styles/中放置了一个文件MyTextFieldStyle.qml:

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\u IMPORT\u PATH
并不是为了解决这个问题。

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