gpt4 book ai didi

c++ - 用另一个替换 QML 文件内容

转载 作者:行者123 更新时间:2023-11-30 05:31:56 25 4
gpt4 key购买 nike

我有以下 main.qml 文件:

import QtQuick 2.3
import QtQuick.Controls 1.2

ApplicationWindow
{
visible: true
width: 640
height: 480

Button
{
text: "Button"
onClicked: qml_file_loader.loadFile("help.qml");
}
}

单击按钮时,我想注入(inject)help.qml 文件的内容。我目前正在做的是打开另一个窗口,通过在 loadFile(const QString) 中使用以下代码加载文件:

void QMLFileLoader::loadFile(const QString page)
{
m_view.setSource(QUrl::fromLocalFile(page));
m_view.show();
}

要替换当前的 QML 文件,我需要做什么?

所有这一切背后的目标是将 UI 与处理数据更新 QML 文件的逻辑分开。 C++ 代码是将在其他项目中使用的库。

最佳答案

QML Loader item你在找什么?

您可以将Loader用作 View 中的内容项,并使用它来加载不同的文件。
您甚至可以轻松地从加载的项目等接收信号...

有关详细信息,请参阅上述文档。

下面是文档中的一个最小示例:

import QtQuick 2.0

Item {
width: 200;
height: 200

Loader { id: pageLoader }

MouseArea {
anchors.fill: parent
onClicked: pageLoader.source = "Page1.qml"
}
}

在应用程序窗口中使用它确实非常简单。
正如您提到的,您的逻辑可以简单地更新 pageLoader.source 属性来更新 UI。

关于c++ - 用另一个替换 QML 文件内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35359596/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com