如何在 Blackberry Cascades qml 和 qt 中点击列表项组件
Posted
技术标签:
【中文标题】如何在 Blackberry Cascades qml 和 qt 中点击列表项组件【英文标题】:How to tap on a list item component in Blackberry Cascades qml and qt 【发布时间】:2012-10-04 15:58:38 【问题描述】:我以前用其他措辞问过这个问题,但也许这个问题措辞不当,似乎没有人回答。我一直在寻找一个工作示例来显示我的问题的答案,但我找不到任何答案。我真的需要知道这个问题的答案。
在 Blackberry Cascades、QML、QT 和 C++ 中,我如何回应有人点击列表中的项目?
答案是否与 TapHandler 和 ListView 相关?如果是这样,有人可以告诉我如何连接这两者,因为我在互联网上找不到任何示例。
【问题讨论】:
How to respond to clicking on list items in a list view in qml, C++ qt, in Blackberry 10 Cascades 的可能重复项 【参考方案1】:这是一个样板示例,类似于我在 Cascades 应用中使用的代码:
ListView
dataModel: XmlDataModel
source: "data/items.xml"
function doResponse()
listItemComponents: [
ListItemComponent
type: "item"
StandardListItem
id: listItem
title: ListItemData.title
onTouch:
if (event.isUp())
listItem.ListItem.view.dataModel.doResponse();
]
【讨论】:
谢谢,但我试过你的答案,但我得到了这个错误:main.qml:227: ReferenceError: Can't find variable: doResponse Any qml or C++ variable or object I try to reference from inside listItemComponents[] 给出了那个错误,但是当我在 listItemComponents[] 之外做同样的事情时没有。 @user1296259 试试新代码,直接从 StandardListItem 对象中获取引用可能很棘手 :-) 谢谢,但我找到了另一个解决方案。我基本上做了这样的事情:我把“onCreationCompleted:Qt.lblX = lblX”放在“Page ”之后,然后在“onTouch:if(event.isUp())”中放Qt。 lblX.setText(index.ListItem.indexPath[1]),然后我使用 onTextChanged 从 lblX 调用我的 C++ 函数(并且我使 lblX 不可见) 是的,doResponse() 不是您最初问题的核心。我只是乐于助人。我回答了你最初的问题“我如何回应有人点击列表中的项目”:onTouch: if (event.isUp())... 所以你应该接受我的回答。以上是关于如何在 Blackberry Cascades qml 和 qt 中点击列表项组件的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Blackberry Cascades qml 和 qt 中点击列表项组件
如何在 Blackberry Cascades、QML 和 C++、QT 的列表视图中获取 Web 视图
Blackberry Cascades 上下文菜单从按钮单击
我的 Blackberry 10 Cascades(C++、Qt 和 QML)示例应用程序在启动时崩溃并出现以下错误