在我的计划中,我使用了已连接的QTableView
和QAbstractTableModel
。模型不包含数据。当视图需要数据显示它调用QAbstractTableModel::data
时,模型使用另一个对象来获取数据并返回。在某些时候,该对象中的数据将发生变化。模型不知道发生了什么变化,因此未调用dataChanged
。
我需要更新只有可见的数据部分(在视图中显示)。它应该从模型中获取新数据。我试图通过调用update()
或repaint()
视图函数来实现这一目标,但它并没有帮助。我认为应该调用tableview的paintEvent
,但不会调用它。
如何使视图更新数据的可见部分?我不想更新庞大的整个数据。
答案 0 :(得分:0)
你的愿望破坏了Qt MVC逻辑。但是,如果您需要解决方法 - 您可以接下来调用更新可见区域:emit dataChanged( QModelIndex(), QModelIndex() );