0

ListView在我的 Cascades 应用程序中使用 a 并且我在 QML 中做大​​部分事情。这是attachedObjects: [ ]里面的ListView

attachedObjects: [
    FmnModel {
        id: fmnModel
    },
    FmnListModel {
        id: asynkDataSource
        source: "sql/fgmt.db"
        query: "SELECT lists.id, lists.name, (SELECT COUNT(1) FROM tasks WHERE tasks.listid=lists.id AND tasks.status=\"Pending\") AS pendings FROM lists"

        onDataLoaded: {
            if(data.length > 0) {
                fmnModel.insertList(data);
            }
        }
    }
] // Attached Objects

以及将下一页加载到的代码NavigationPane

property variant taskpaged
onTriggered: {
    taskpaged = taskPageDefinition.createObject();
    navPane.push(taskpaged);

    taskpaged.back.connect(navPane.pop);
}

因此,当我在页面中单击“返回”时taskpaged,应用程序崩溃了。知道为什么吗?还是我需要提供更多代码?(如果是,是哪个?)

4

2 回答 2

0

您需要signal back()在 QML 中为您的taskPageDefinition. 然后您还需要为页面定义导航窗格属性,并指定单击后退按钮时发生的操作:

Page {
  id: taskPage
  signal back()

  paneProperties: NavigationPaneProperties {
    backButton: ActionItem {
        onTriggered: {
            // Send the back() signal, which you already connected to nav.pop()
            taskPage.back();
        }
    }
  }
}

希望这会有所帮助。你也可以看看这个问题,我在那里发布了一个完整的导航窗格示例,但在那个示例中,我只是直接从后退按钮的 onTriggered 调用 nav.pop() 。在这里,您正在使用信号和插槽。

于 2013-01-23T03:27:11.190 回答
0

可能会引发一些错误,但如果您从一个页面开始然后推送另一个页面,您将看不到它们。让您的应用指向 (taskpage) 作为要加载的第一页。你会看到有很多例外。修复它们然后返回原始代码

于 2013-01-16T08:50:41.320 回答