在读取整个文件到QStandardItemModel后更新QTableView
Updating QTableView after reading whole file to QStandardItemModel
我有一些新手问题。我不确定我是否正确理解了模型-视图-控制器设计模式。
也许我应该从描述我的问题开始。我正在从文件中读取一些数据。这可能需要10秒,然后我将这些数据显示在表格中。问题是我应该如何存储这些数据?除了QStandardItemModel
,我应该有另一个容器,我将从文件中读取数据,并在其他线程中使用它?例如,我有QStandardItemModel
在Gui线程,我创建另一个容器,让我们说QVector
。我将数据从文件加载到QVector
,然后将数据从QVector
移动到QStandardItemModel
?
我不能在其他线程中使用QStandardItemModel
并直接从文件读取数据到QStandardItemModel
,因为GUI冻结,因为QStandardItemModel
在appendRow
之后发出信号来更新视图。
或者我应该创建自定义模型,并添加方法来更新视图只有当整个文件加载到QStandardItemModel
?QTableView
有自己的数据容器,它不与模型同步?这样可能/正确吗?
当我读取一个新文件的情况是什么?
谢谢你的帮助
我认为你可以按照以下步骤来解决你的问题:
- 当您需要从文件中加载新数据时,请在
nullptr
中设置QTableView
的模型。 - 用文件中的数据在非主(非gui)线程中填充
QStandardItemModel
(此模型是QTableView
的模型)。 - 在主(GUI)线程中设置
QTableView
的数据模型。
当然,解决问题的最简单方法也可能是向用户显示这样的东西:"数据加载,请等待…",当你在主(GUI)线程中加载QStandardItemModel
中的数据时。
相关文章:
- 没有找到相关文章