2013-01-20 45 views
5

qml listviewに要素を追加する際に助けが必要です。テキストエリアとボタンを押したときにテキストエリアテキストをリストビューアイテムに追加するボタンがあります。QML、リストビューに動的に要素を追加する

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

私はそれを追加しようとしましたが、リストビューに表示されません...どのようなヘルプ?このような「スコア」を囲む引用符、なし

+4

あなたp1buttonでonClicked、あなたはListModelのにテキストを追加する*前* TextArea内のテキストをクリアし、もちろんテキストは表示されませんアップ。 – Dickson

+0

テキストがまだ表示されない、デリゲートの問題だと思う...(質問を編集しました) – Hairo

+0

わかりませんが...あなたの 'delegate'コンポーネントIDを別のものに変更してください。あなたのListViewで 'delegate:delegate'を使うと、それは' delegate:p1scores.delegate'であると仮定します。 – Dickson

答えて

8

試してみてください。

onClicked: { 
    p1model.append({score: p1input.text}) 
    p1input.text = "" 
} 
関連する問題