2017-01-10 9 views
0

デリゲートを使用してボタンのリストを作成しました。リストアイテムがQMLリストビューに正常に追加されたことを知る方法?

ListView 
{ 
    id: list 
    width: 180; height: 200 
    delegate: Button 
    { 
     width: 180; height: 40 
     //assigning few properties 
    } 
} 

私の.cppから、私はリストをクリアし、再びアイテムを追加します。 リストがリフレッシュされ、すべてのアイテムが正常に追加されるたびに確認できるシグナルはありますか?

+0

ボタンが構築されていることを確認するためにボタンに

Component.onCompleted: console.log("button is created") 

をハンドラを追加することができますか?方法と理由? – derM

答えて

1

適切なQAbstractListModelを実装します。これには、リスト項目の追加および削除の通知が含まれます。変更は自動的かつ効率的に反映されます。

普通のQListがモデルとして公開されているように聞こえますが、それは非常に間違っています。特に動的で変化するモデルがある場合は間違いです。リストをQ_PROPERTYとしてNOTIFYシグナルで公開することで強制的に更新を強制することはできますが、変更を効率的に反映するのではなく、すべての代理人をすべての変更に対して再現させるため非常に効率的ではありません。

-1

あなたはあなたが直接 `ListView`に項目を追加

+0

'ListView'は、(ビュー内で)必要に応じてオブジェクトを作成して破棄することになっています。そのため、モデルの種類に関係なく、' Item'を作成することはできません。表示された範囲外であること。 – derM

関連する問題