Blackberry 10级联qml方法

Blackberry 10级联qml方法,qml,blackberry-10,blackberry-cascades,Qml,Blackberry 10,Blackberry Cascades,当我单击按钮从一个qml布局加载到另一个qml布局时,如何加载方法?因为我有一个editprofile按钮,如果我点击这个按钮,意味着我想显示我从webservice获得的值,如何做到这一点?有人能给我一些想法吗。? 谢谢如果我理解正确,您希望在单击按钮时执行操作。为此,您可以将onClicked方法添加到QML中的按钮对象中。例如: Button { text: "View profile" onClicked: { myProfileInfo.visible

当我单击按钮从一个qml布局加载到另一个qml布局时,如何加载方法?因为我有一个editprofile按钮,如果我点击这个按钮,意味着我想显示我从webservice获得的值,如何做到这一点?有人能给我一些想法吗。?
谢谢

如果我理解正确,您希望在单击按钮时执行操作。为此,您可以将
onClicked
方法添加到QML中的
按钮
对象中。例如:

Button {
    text: "View profile"
    onClicked: {
        myProfileInfo.visible = true;
    }
}

Label {
    id: myProfileInfo
    text: "This is my profile"
    visible: false
}

如果我理解正确,您希望在单击按钮时执行操作。为此,您可以将
onClicked
方法添加到QML中的
按钮
对象中。例如:

Button {
    text: "View profile"
    onClicked: {
        myProfileInfo.visible = true;
    }
}

Label {
    id: myProfileInfo
    text: "This is my profile"
    visible: false
}

听起来好像您正试图将从Web服务检索到的数据从一个QML视图传递到另一个QML视图。我认为,在导航窗格中,您可以使用
createObject()
从.qml文件构建UI屏幕,并将新屏幕(页面)推送到导航窗格的视图堆栈上,新创建的可视页面的UI可以访问您的数据,这是一种更具体的描述,也是一种常见的方法

为了传递数据,请在“profileview”QML页面的根对象(页面、容器)上声明一个属性。然后,在按钮的
onClicked()
函数的第一个QML文件中,将QML定义上的
createObject()
的结果分配给变量。然后,可以使用此变量将数据分配给“profileview”页面上的属性。您的按钮将如下所示:

//假设您有一个名为navPane的导航窗格
//您还必须为QML文件定义一个组件
钮扣{
文本:“查看配置文件”
再次点击:{
var profilePage=profileDefinition.createObject();
profilePage.myData=webserviceData;
导航窗格。推送(配置文件页);
}
附件:[
组件定义{
id:profileDefinition
来源:“profilePage.qml”
}
]
}
下面是基于导航窗格级联示例项目的更详细的完整示例:

main.qml

//导航窗格项目模板
导入bb.cascades 1.0
导航窗格{
id:导航窗格
//此属性保存并跟踪创建的配置文件页面
属性页配置文件页
/*实际上,此属性保存一些示例webservice数据
*您可以从Web服务加载此内容
*/
属性变量webserviceData:{
“姓名”:“约翰·多伊”,
“电子邮件”:“约翰。doe@stackoverflow.com",
“推特”:“@johndoe”
}
页面{
//带有显示配置文件的按钮的页面
容器{
布局:码头布局{
}
标签{
水平对齐:水平对齐。居中
垂直对齐:垂直对齐。顶部
文本:webserviceData.name
}
钮扣{
水平对齐:水平对齐。居中
垂直对齐:垂直对齐。中心
文本:qsTr(“显示配置文件”)
再次点击:{
//单击按钮时显示详细信息页面
profilePage=profileDefinition.createObject();
profilePage.myProfileData=webserviceData;
导航窗格。推送(配置文件页);
}
附件:[
组件定义{
id:profileDefinition
来源:“profilePage.qml”
}
]
}
}
}
OnPopTransitioned:{
//清理所有弹出的页面,以避免内存泄漏
如果(profilePage==第页){
page.destroy();
}
}
}
profilePage.qml

//导航窗格项目模板
导入bb.cascades 1.0
页面{
/*我们的数据属性
*注意:变体是QVariant Qt类型,因此它可以轻松处理不同的
*数据类型,在我们的例子中是一个映射。
*如果没有大括号来表示它是一个对象,您将得到一个TypeError
*从运行时的QML
*/
属性变量myProfileData:{/*空对象*/}
//包含个人资料详细信息的页面
paneProperties:导航paneProperties{
backButton:ActionItem{
反对:{
//将此页从堆栈中弹出并返回
navPane.pop();
}
}
}
容器{
标签{
文本:qsTr(“档案页”)
水平对齐:水平对齐。居中
文本样式{
基础:SystemDefaults.TextStyles.TitleText
颜色:颜色。蓝色
}
}
标签{
文本:“名称:”
水平对齐:水平对齐。左
}
文本字段{
text:myProfileData.name
水平对齐:水平对齐。居中
}
标签{
文本:“电子邮件:”
水平对齐:水平对齐。左
}
文本字段{
文本:myProfileData.email
水平对齐:水平对齐。居中
}
标签{
文字:“推特:”
水平对齐:水平对齐。左
}
文本字段{
文本:myProfileData.twitter
水平对齐:水平对齐。居中
}
}
}
希望这能帮你走。此外,GitHub上的这些示例项目可能有助于:


听起来好像您正试图将从Web服务检索到的数据从一个QML视图传递到另一个QML视图。我认为,在导航窗格中,您可以使用
createObject()
从.qml文件构建UI屏幕,并将新屏幕(页面)推送到导航窗格的视图堆栈上,新创建的可视页面的UI可以访问您的数据,这是一种更具体的描述,也是一种常见的方法

为了传递数据,请在“profileview”QML页面的根对象(页面、容器)上声明一个属性。然后,在按钮的
onClicked()
函数的第一个QML文件中,将QML定义上的
createObject()
的结果分配给变量。然后,可以使用此变量将数据分配给上的属性