2013-01-20 61 views
5

Tôi cần trợ giúp thêm yếu tố vào danh sách xem qml, tôi có văn bản và nút sẽ thêm văn bản textarea vào mục listview khi được nhấn, đây là nỗ lực của tôi:QML, tự động thêm phần tử vào listview

Component { 
    id: delegate 
    Item { 
     width: 200; height: 28 
     Label { 
      text: score 
     } 
    } 
} 

ListView { 
    id: p1scores 
    model: p1model 
    delegate: delegate 
    anchors.top: p1name.bottom 
    anchors.topMargin: units.gu(1) 
} 

ListModel { 
    id: p1model 
    ListElement { score: "0" } 
} 

TextArea { 
    id: p1input 
    width: units.gu(8) 
    height: units.gu(3) 
    horizontalAlignment: TextEdit.AlignHCenter 
    inputMethodHints: Qt.ImhDigitsOnly 
    contentHeight: units.gu(60) 
    anchors.topMargin: units.gu(8) 
} 

Button { 
    id:p1button 
    text: i18n.tr("Add") 
    width: units.gu(8) 
    onClicked: { 
     p1model.append({"score": p1input.text}) 
     p1input.text = "" 
    } 
} 

tôi đã thử thêm nhưng không hiển thị trong chế độ xem danh sách ... bất kỳ trợ giúp nào?

+4

trong p1button bạn onClicked, bạn xóa văn bản trong TextArea * trước * thêm văn bản vào ListModel, tất nhiên các văn bản sẽ không hiển thị lên. – Dickson

+0

Văn bản vẫn không hiển thị, tôi nghĩ rằng đó là vấn đề với đại biểu ... (đã chỉnh sửa câu hỏi) – Hairo

+0

Tôi không chắc chắn nhưng ... thay đổi thành phần 'delegate' thành một cái gì đó khác, bởi vì khi bạn sử dụng 'delegate: delegate' trong ListView của bạn, nó giả định là' delegate: p1scores.delegate', vì vậy nó liên kết ngược lại với chính nó. – Dickson

Trả lời

8

Hãy thử mà không cần dấu ngoặc kép quanh 'điểm', như thế này:

onClicked: { 
    p1model.append({score: p1input.text}) 
    p1input.text = "" 
} 
Các vấn đề liên quan