2013-10-31 113 views
2

我有一个模型,动态更新与视图无关。应该在视图上调用哪种方法来显示当前的模型数据?Qt模型 - 查看更新视图?

例子:

StationListModel *model = new StationListModel(dynamic_list); 
QListView *view = new QListView; 
view->setModel(model); //view set with empty model 
view->show(); 

在时间dynamic_list一些点填充通过套接字连接(无关的视图)新的条目。如何用新数据填充视图?

+0

有一个'QAbstractItemView :: update(const QModelIndex&index)'。 'QAbstractItemView'是'QListView'的基类 – TheMeaningfulEngineer

回答

4

模型必须发射信号以在数据更改时通知视图。根据数据更改的方式选择适当的信号:

  • dataChanged信号强制视图更新特定单元格,但不创建或删除单元格。
  • layoutAboutToBeChangedlayoutChanged信号强制视图更新一切。
  • 有关添加或删除行和列的信号强制视图进行相应更新。
+0

视图上可以捕获它们的插槽是什么? – TheMeaningfulEngineer

+1

这是内部视图实现。视图自动连接到模型的信号。你不需要考虑它。 –

+0

所以在设置'view-> setModel(model)'后,视图应该在每次模型更改时自动更新(假设'dataChanged'或'layoutChanged'已经完成)? – TheMeaningfulEngineer