本人写了一个函数
void Module::reset()
里面重置了Listview中model的值。而且确实更改了,但是在Listview显示上没有马上改变
一开始的函数是这样写的
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);
}
}
有改变但是没有马上响应,需要收到切换才显示正确的值
后面增加了两行代码:
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();
}
原来是对数据进行操作,都要写相应的begin和end 。Listview 才会动态改变。
可以看到有几种: