假设我的qml.qrc中有以下结构
<RCC>
<qresource prefix="/">
<file>main.qml</file>
<file>Style.qml</file>
</qresource>
<qresource prefix="/components">
<file>Test.qml</file>
</qresource>
main.qml
import QtQuick 2.5
import QtQuick.Window 2.2
import QtQuick.Layouts 1.0
import QtQuick.Controls 2.0
import "components"
Window {
visible: true
width: 640
height: 480
title: qsTr("Hello World")
Test {
color: "red"
}
}Test.qml
import QtQuick 2.0
import ".."
Rectangle {
width: Style.test * 200
height: 200
}Style.qml
import QtQuick 2.0
pragma Singleton
QtObject {
property real test: 1.0
}一段时间以来,我一直试图用Style.qml从Test.qml导入import "../",但是我一直在获取ReferenceError: Style is not defined
我知道导入语句是造成这种情况的原因,我尝试了几种不同的“可能”操作的变体,但是缺乏文档,所以我被困住了。帮助感激。
发布于 2017-01-17 11:28:36
使用下面的代码,我没有错误,并看到了预期的可视结果。如果您无法从这个工作示例中发现您的问题,我建议包括一个更完整的示例。请注意,我在这里提供的所有路径都是相对于“根”项目目录(例如,main.cpp是"root“中的一个文件,components/Test.qml位于"components”子目录中):
main.cpp:
#include <QQmlApplicationEngine>
#include <QGuiApplication>
int main(int argc, char **argv) {
QGuiApplication app(argc, argv);
QQmlApplicationEngine qAppEngine(QUrl("qrc:/main.qml"));
return app.exec();
}main.qml
import "components"
Test {
}组件/Test.qml:
import ".."
Style {
}Style.qml:
import QtQuick 2.6
import QtQuick.Window 2.2
Window {
visible: true
width: 500
height: 500
color: "red"
}建筑有以下几个方面:
test.pro:
QT += quick qml
RESOURCES += test.qrc
SOURCES += main.cpptest.qrc:
<!DOCTYPE RCC><RCC version="1.0">
<qresource>
<file>main.qml</file>
<file>Style.qml</file>
<file>components/Test.qml</file>
</qresource>
</RCC>https://stackoverflow.com/questions/41695197
复制相似问题