2016-04-14 2 views
1

У меня есть Listview, который будет содержать список материалов. Мой элемент - это текст и изображение. Текст содержит имя материала, изображение - кнопка удаления. Когда я нажимаю кнопку «Добавить», я хочу добавить свой элемент в список. Затем, если я нажму кнопку «Удалить», я хочу удалить запись из списка.Как заполнить ListView вручную в QML?

Как я могу это сделать?

ответ

1

Предположим, у вас есть код ListModel. ListModel предоставляет некоторые methods для вставки и удаления элементов.

Вы упомянули свой ListElement содержит текст и удалить изображение. Поэтому я думаю, что у вас есть что-то вроде следующего кода, где вы можете увидеть пример добавления и удаления элементов.

import QtQuick 2.5 
import QtQuick.Window 2.2 
import QtQuick.Controls 1.4 

Window { 
    visible: true 
    width: 500 
    height: 500 

    Rectangle { 
     width: 250 
     height: 400 


     Component { 
      id: listDelegate 

      Item { 
       width: 250; height: 50 

       Row { 
        Column { 
         width: 200 
         Text { text: 'mytext: ' + mytext } 
        } 
        Column { 
         width: 50 
         Image { 
          id: deleteButton 
          source: "delete.jpg" 
          MouseArea { 
           anchors.fill: parent; 

           onClicked:{ 
            console.debug("clicked:"+ index); 
            listModel.remove(index); 
           } 
          } 
         } 
        } 
       } 
      } 
     } 

     ListModel { 
      id: listModel 

      ListElement { 
       mytext: "AAA" 
      } 
      ListElement { 
       mytext: "BBB" 
      } 
     } 

     ListView { 
      id: listView 
      anchors.fill: parent 
      model: listModel 
      delegate: listDelegate 
      focus: true 
     } 
    } 

    Button { 
     y: 450 
     text: "add" 

     onClicked: { 
      listModel.append({"mytext": "XXX"}) 
     } 
    } 
} 
Смежные вопросы