我有一个QTableView
,将QAbstractTableModel
子实例设置为模型。孩子实施void sort(int columnt, Qt::SortOrder order)
.我将QTableView::sortEnabled(bool)
设置为 true
,以便可以通过单击列标题对表进行排序。当我单击标题排序几乎立即完成时,但只有当我将鼠标移动到表格区域时,表格才会更新。我需要从sort()
发出一些信号吗?或者调用函数来更新QTableView
?
), QModelIndex() ); 排序后。
我想指出的是,传递无效索引没有记录,但我经常在我的项目中使用它。它运行良好,并且比传递大范围的有效索引要快得多,因为原因只更新可见区域。但它可能会有一些繁重的代表/自定义小部件的故障。
我在 QTreeView 上测试了 - 更新 10k 元素的范围大约需要 1,5 秒(发出数据使用有效索引更改)。当我使用无效索引时,信号被立即处理。