0

在我使用的程序中QTableViewQAbstractTableModel它们是连接的。模型不包含数据。当视图需要数据来显示它调用QAbstractTableModel::data和模型使用另一个对象来获取数据并返回。在某些时候,该对象中的数据会发生变化。模型不知道发生了什么变化,因此dataChanged不被调用。

我需要只更新可见部分的数据(显示在视图中)。它应该从模型中获取新数据。我试图通过调用update()repaint()视图函数来实现这一点,但这无济于事。我在想它应该调用paintEventtableview 但它没有被调用。

如何使视图更新可见部分数据?我不想更新庞大的整个数据。

4

1 回答 1

0

你的愿望破坏了 Qt MVC 的逻辑。但是,如果您需要解决方法 - 您可以进行下一次调用以更新可见区域:emit dataChanged( QModelIndex(), QModelIndex() );

于 2014-06-03T08:16:32.660 回答