将 QML 文件内容替换为另一个文件内容

Replace QML file content by another one

本文关键字:文件 另一个 替换 QML      更新时间:2023-10-16

我有以下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");
   }
}

单击按钮时,我想注入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项目是您要查找的吗?

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

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

下面是从文档中获取的最小示例:

import QtQuick 2.0
Item {
    width: 200;
    height: 200
    Loader { id: pageLoader }
    MouseArea {
        anchors.fill: parent
        onClicked: pageLoader.source = "Page1.qml"
    }
}

在应用程序窗口中使用它确实非常容易。
如前所述,逻辑只需更新 pageLoader.source 属性即可更新 UI。

相关文章: