gpt4 book ai didi

qt5 - 与 QSortFilterProxyModel 一起使用时 QTableView 中的默认排序顺序

转载 作者:行者123 更新时间:2023-12-05 02:19:51 40 4
gpt4 key购买 nike

我正在使用自定义 QSortFilterProxyModel 对显示在 QTableView 中的自定义 QAbstractTableModel 进行排序和过滤。

我已经设置了排序和过滤,一切都按预期工作。

现在我希望一些列默认升序排序,一些列默认降序排序。对于“默认”,我的意思是如果第一次单击列标题,这应该是默认排序顺序(正如我所说的,它因列而异)。

我可以通过根据列在我的自定义 QAbstractTableModel 中实现它来做到这一点,但是列标题中显示的排序指示符与某些列的排序顺序不匹配。

我想设置默认排序顺序可能应该在 QTableView 中完成,但我没有找到如何。

如有任何帮助,我们将不胜感激。

最佳答案

要设置 View 在您第一次单击标题部分时执行的排序,您可以覆盖模型的 headerData,并遵守 Qt::InitialSortOrderRole 作用:

QVariant MyModel::headerData(int section, Qt::Orientation orientation, 
int role) const
{
if (role == Qt::InitialSortOrderRole)
return Qt::DescendingOrder; // or maybe Ascending

return QSqlTableModel::headerData(section, orientation, role);
}

不要忘记调用父级 headerData() 方法,它不一定是 QSqlTableModel 这取决于您扩展的模型。

关于qt5 - 与 QSortFilterProxyModel 一起使用时 QTableView 中的默认排序顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40983060/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com