2016-04-14 45 views
1

Malzeme listesini tutacak bir Liste görünümüm var. Öğem bir metin ve bir resim. Metin malzeme adını tutar, görüntü bir silme düğmesidir. Ekle düğmesini tıkladığımda, öğemi liste görünümüne eklemek istiyorum. Daha sonra sil düğmesini tıklatırsam, kaydı ListView'den silmek istiyorum.ListView QML'de el ile nasıl doldurulur?

Bunu nasıl yapabilirim?

cevap

1

Sanırım kodunuzda bir ListModel var. ListModel, öğeleri eklemek ve kaldırmak için bazı methods sağlar.

ListElement numaralı belgeden bir metin ve bir silme görüntüsü içerdiğinden bahsetmiştiniz. Bu yüzden, aşağıdaki kod gibi bir öğeye sahip olduğunuzu düşünüyorum; öğelerin eklenmesi ve kaldırılmasıyla ilgili bir örnek görebilirsiniz.

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"}) 
     } 
    } 
}