将 QML 文件内容替换为另一个文件内容
Replace QML file content by another one
我有以下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。
相关文章:
- C++-试图将函数指针推回到另一个CPP文件中的矢量时出错
- 输入到文件并输出到另一个文件,并将流文件传递给函数
- C++试图读取一个文件并输出到另一个文本文件
- 如何从另一个文件继承私有成员变量和公共函数
- 在 Windows 上,是否可以让 dll 在不使用 PATH 环境变量的情况下在另一个文件夹中查找依赖项?
- C++ 如何打开带有另一个目录的输入文件?
- 如何在 Gnuplot 中分别绘制 2 个文件数据?我有一个文件"sin.txt",另一个文件"cos.txt",我想将它们分别绘制在一个图表上
- 从另一个 cpp 文件更改结构内、映射键内的变量
- 程序在使用 system() 启动另一个可执行文件时停止
- 如何在安卓工作室中将c ++头文件从一个文件夹导入到另一个文件夹?
- 如何在另一个 CPP 文件中使用一个 cpp 文件中的函数?
- 使用 scope 运算符 (::) 引用另一个文件中的类
- JNI,使用两个 .so 文件时出错,其中一个文件需要另一个文件
- 如何将包含另一个对象向量的对象保存到文件中,并使用C++中的二进制文件从文件中读回?
- 两个线程一个使用流 Api,另一个线程创建文件失败并出现错误ERROR_SHARING_VIOLATION
- 为什么我不能从同一目录中的另一个文件中 #include 我的类?
- 使用命名空间在另一个".cpp"文件中定义
- 在 c++ 中打开文件、删除标点符号并追加到另一个文件中
- C++ 如何将两个 makefile 对象目标规则(位于另一个文件夹中)合并到一个目标/规则中?
- 是否可以将子进程的 stdout 重定向到父进程中的另一个文件?