Qt模型 - 查看更新视图?

The*_*eer 4 qt view

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

例:

StationListModel *model = new StationListModel(dynamic_list);
QListView *view = new QListView;
view->setModel(model);  //view set with empty model 
view->show();
Run Code Online (Sandbox Code Playgroud)

在某些时间点,dynamic_list通过套接字连接填充新条目(与View无关).如何使用新数据填充视图?

Pav*_*hov 5

模型必须发出信号,以便在数据更改时通知视图.根据数据的准确变化选择合适的信号:

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

  • @alan实际上你不应该直接发出`layoutAboutToBeChanged`和朋友,而是使用`beginInsert`和`endInsert`和family,它们将依次发出必要的信号 (3认同)
  • @alan:*所以在设置view-> setModel(model)之后; 视图应该在每次模型更改时自行更新*这是模型 - 视图架构的**整点**.否则它就是无用的. (3认同)