Qmlは、C ++でモデルデータの値を変更して、Listviewに応答を表示させるにはどうすればよいですか?

関数を書いた

void Module::reset()

リストビューのモデルの値は内部でリセットされます。そして、それは変更されましたが、リストビュー表示ではすぐには変更されませんでした

冒頭の関数はこのように書いてあります

void Module::reset(){
    for(unsigned int i=0;i<module_.size();i++){
        QModelIndex start_index = createIndex(i, 0);
        setData(start_index,module_[i]->default_value_.data(),1);
    }
}

変更はありますが、即時の応答はありません。正しい値は、スイッチを受け取った後にのみ表示されます

その後、2行のコードが追加されました。

void Module::reset(){
    beginResetModel();
    for(unsigned int i=0;i<module_.size();i++){
        QModelIndex start_index = createIndex(i, 0);
        setData(start_index,module_[i]->default_value_.data(),1);
    }
    endResetModel();
}

データを操作するには、対応する開始と終了を書き込む必要があることがわかります。リストビューは動的に変化します。
いくつかのタイプがあります:
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/weixin_39139505/article/details/103067765
おすすめ