我正在尝试显示一些带有QTableView
子类和QAbstractTableModel
子类的表格数据。我无法让数据显示出来,但在我开始真正敲击它之前,我想确保我按照预期的方式使用模型。
我的应用程序的数据层定期接收新数据并通过调用槽将数据分发到应用程序的其他部分,如
void new_data_received(QSharedPointer<Measurement> measurement)
Measurement
我的数据类在哪里。这允许数据在不被复制的情况下传递(我的一些数据类非常大)。测量是不可变的;显示它们的表格视图不允许任何编辑。
Measurement
是 的子类QAbstractTableModel
,因此每当我收到新的测量值时,我都会以新数据作为参数调用set_model
我的子类实例。QTableView
(在收到第一次测量之前,表格视图上没有设置模型。)
Qt 的视图类是否打算像这样使用,并且每隔一段时间就会设置一个新模型?还是应该只有一个模型类的实例,与表视图具有相同的生命周期,接收新数据并发出dataChanged
?后者似乎增加了不必要的结构 - 至少在我的情况下 - 但也许这就是系统设计使用的方式。