Как я могу сделать элемент ListView Qt Quick (QML) недоступным для выбора? - PullRequest
0 голосов
/ 06 октября 2011

Можно ли сделать элемент QML, содержащийся в объекте ListView, невыбираемым? Как то так

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

1 Ответ

1 голос
/ 21 октября 2011

Если под «невыбираемым» имеется в виду запретить пользователю возможность щелкнуть элемент, вы можете добавить свойство selectable к модели, как вы это сделали, а затем использовать его в событии onClicked вListView делегат - примерно так:

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

Кроме того, похоже, что вы ссылаетесь на модель неправильно.Либо используйте идентификатор ListView (например, myListView.model), либо, если ваш цикл for находится в пределах видимости, вы можете напрямую обратиться к model.

...