qml 调用另一个qml
时间: 2023-10-03 09:09:45 浏览: 564
要在一个 QML 文件中调用另一个 QML 文件,你可以使用 Qt 的 `Loader` 组件。以下是一个简单的示例:
首先,创建一个名为 `Main.qml` 的 QML 文件,它将作为主视图:
```qml
import QtQuick 2.0
Item {
width: 400
height: 300
Loader {
id: contentLoader
source: "Secondary.qml"
}
MouseArea {
anchors.fill: parent
onClicked: contentLoader.source = "Secondary.qml"
}
}
```
在上面的代码中,我们使用 `Loader` 组件来加载名为 `Secondary.qml` 的文件。当点击 `MouseArea` 时,我们将重新加载 `Secondary.qml` 文件。
接下来,创建一个名为 `Secondary.qml` 的 QML 文件,作为被加载的内容:
```qml
import QtQuick 2.0
Rectangle {
width: 200
height: 150
color: "red"
Text {
anchors.centerIn: parent
text: "Secondary QML"
font.pixelSize: 20
}
}
```
在上面的代码中,我们创建了一个红色的矩形,并在其中放置了一个居中的文本。
最后,在主应用程序中加载 `Main.qml` 文件:
```cpp
#include <QGuiApplication>
#include <QQmlApplicationEngine>
int main(int argc, char *argv[])
{
QGuiApplication app(argc, argv);
QQmlApplicationEngine engine;
engine.load(QUrl(QStringLiteral("qrc:/Main.qml")));
return app.exec();
}
```
通过运行上述代码,你将看到一个宽度为 400,高度为 300 的窗口。当你点击窗口时,它会加载 `Secondary.qml` 文件,并在窗口上显示一个红色的矩形和文本。
希望这可以帮助到你!如果有任何其他问题,请随时问我。
阅读全文