0

我知道这可能是我在这里遗漏的一件非常小的事情,但我花了很多时间试图解决这个问题。我来自 Objective-C 背景,我想做的是:

我有一个 main.qml,它是一个 navigationPane,它还添加了 2 个其他外部页面作为附加对象。这两个页面具有网格列表视图。现在,有一个 MyApp.cpp 文件,它加载一个 Json 文件并将结果填充到 main.qml 文件中。我一开始只在这个页面上显示相关的项目。当用户点击任何项目时,我想将它们带到 page2.qml,它具有我上面提到的网格列表视图,并使用从 main.qml 传递的 dataModel 填充它(其中包含来自 MyApp.cpp 的所有数据)。这让我一点快乐都没有!我需要帮助。我能做些什么来完成这项工作?请问我在这方面需要帮助...

4

1 回答 1

0

我不确定这是否是最佳实践,但我发现最简单的方法是使用 Qt 全局对象。

基本上将您的数据或对象分配给 Qt 对象,然后您可以从任何其他页面访问它。

例如
,在 onCreationCompleted 的 main.qml 或您接收数据的任何函数中:

function getData(data) {
    Qt.myVariable = data;
}

然后在您的其他页面中,您可以访问它。例如在 Page2.qml 中:

Page {
    onCreationComplete: {
        myLabel.text = Qt.myVariable;
    }
}

正如我所提到的,这也适用于对象,因此您可以分配导航窗格、工作表、页面等。因此,诸如“Qt.myNavPane.push(page)”之类的事情变得可能。

我遇到了需要将 Qt 用于各种目的的问题。我认为信号和插槽是更好的实践,但并不总是实用的。

于 2013-02-11T13:02:46.063 回答