如何在 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)示例应用程序在启动时崩溃并出现以下错误

Blackberry 10 Cascades、qml (C++ & QT) 中的布局存在问题

BlackBerry Cascades 中的 QML 字符串