gpt4 book ai didi

c++ - QSortFilterProxyModel 和动态排序

转载 作者:太空狗 更新时间:2023-10-29 22:58:57 27 4
gpt4 key购买 nike

我正在使用继承 QSortFilterProxyModel 的类来仅对 TableView 中的行进行排序。

我启用了 dynamicSort 以确保即使在我加载模型或添加行时我的 View 也保持排序(我已经检查过 modelReset()rowsInserted() 由我的模型正确发出)。

但出于某种原因,我的行没有保持排序。

是否有特定的操作可以启用动态排序?

setDynamicSortFilter 根本就不是做什么的吗?

有没有办法在发出这些信号时手动调用排序? (每次我尝试这样做时,我只从模型的 data() 中得到无效变体,根据来源判断,信号是在 QSortFilterProxyModel 完成设置之前发出的事情又来了)

无论如何,欢迎任何帮助来尝试弄清楚它应该如何工作,谢谢。

最佳答案

来自 dynamicSortFilter 文档:

Note that you should not update the source model through the proxy model when dynamicSortFilter is true. For instance, if you set the proxy model on a QComboBox, then using functions that update the model, e.g., addItem(), will not work as expected. An alternative is to set dynamicSortFilter to false and call sort() after adding items to the QComboBox.

有没有办法在发出这些信号时手动调用排序? (每次我尝试这样做时,我只从模型的数据()中得到无效变体,根据来源判断,信号是在 QSortFilterProxyModel 再次完成设置之前发出的)

我认为如果您将 dynamicSortFilter 设置为 false 那么您对 ​​sort 的手动调用将不会(严重地)被 QSortFilterProxyModel 拦截 的内部更新。至少我可以告诉你,这就是我在类似情况下所做的,并且对我来说效果很好。

关于c++ - QSortFilterProxyModel 和动态排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38478074/

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