如何更新QAbstractTableModel Chang上的QTableView

2024-09-27 21:33:25 发布

您现在位置:Python中文网/ 问答频道 /正文

在使用QTableViewQAbstractTableModel时,QTableView有时不会随QAbstractTableModel数据中发生的更改而更新。为了“强制”或触发视图更新,我使用QAbstractTableModel的self.layoutChanged.emit()方法。在

当它工作时,我注意到这种方法可能会导致一些不稳定甚至崩溃。我想知道,当QAbstractTableModel更改时,是否有其他方法可以更新QTableView?在


Tags: 数据方法self视图emitqtableviewqabstracttablemodellayoutchanged
1条回答
网友
1楼 · 发布于 2024-09-27 21:33:25

基本上,可以将函数连接到模型dataChanged signal/event,也可以将此信号插入用于修改模型的函数(如果已实现)。在

第一个选项可能如下所示,在您的模型类中

self.dataChanged.connect(self.view.refresh) 

其中refresh()是视图中的一个自定义槽,它触发一个简单的self.update(),否则您需要处理信号发送的参数(受影响的父级QModelIndex)。在


第二个选项需要用QModelIndex发出信号,当您在model类中应用一些更改时,请在函数中调用此选项:

^{pr2}$

其中X和Y表示表中更改数据的位置

第三个参数role是一个选项,即您可以指定DisplayRole,否则可以更新所有角色。在

相关问题 更多 >

    热门问题