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