如何使 Qt Quick (QML) ListView 项目无法选择?

Posted

技术标签:

【中文标题】如何使 Qt Quick (QML) ListView 项目无法选择?【英文标题】:How can i make a Qt Quick (QML) ListView Item unselectable? 【发布时间】:2011-10-06 12:41:43 【问题描述】:

我可以使包含在 ListView 对象中的 QML 项不可选择吗?像这样的

 for(var i=0; i < ListView.model.count; i++)                                                                                                          
       ListView.model.get(i).selectable = false;                                                                                         
       

【问题讨论】:

【参考方案1】:

如果“不可选择”是指阻止用户点击该项目,那么您可以像您所做的那样将selectable 属性添加到模型中,然后在您的onClicked 事件中使用它ListView delegate - 类似这样的:

ListView 
  ...
  delegate: Item 
    ....
    MouseArea 
      anchors.fill: parent;
      onClicked: 
        if(selectable) 
           //Do Something Interesting...
         
    
  

此外,您似乎错误地引用了模型。要么使用 ListView 的 id(例如 myListView.model),要么如果你的 for 循环在范围内,你可以直接引用 model

【讨论】:

以上是关于如何使 Qt Quick (QML) ListView 项目无法选择?的主要内容,如果未能解决你的问题,请参考以下文章

Qt Quick - 如何仅通过 c++ 代码与 qml 属性交互

qt-quick(qml) 应用程序无法订阅 ros 主题

Qt5 和 QML:如何使用 WebEngine Quick Nano Browser 自动输入用户名和密码

如何在 Qt Quick 中将 QML 项目转换为相应的 C++ 项目

如何通过按下和拖动在 Qt Quick/QML 画布中绘制一个矩形

Qt和Qt Quick QML,