我使用继承QSortFilterProxyModel的类只对表视图中的行进行排序。
我启用了dynamicSort,以确保即使在加载模型或添加行时,我的视图也保持排序(我已经检查modelReset()或rowsInserted()是否由我的模型正确地发出)。
但出于某种原因,我的行没有排序。
对于启用动态排序,有什么特定的操作吗?
难道根本就不是setDynamicSortFilter所做的吗?
是否有一种在发出这些信号时手动调用排序的方法?(每次我尝试这样做时,从模型的data()中只能得到无效的变体,从源判断,信号是在QSortFilterProxyModel完成重新设置之前发出的)
无论如何,任何帮助都是欢迎的,试图找出这应该如何运作,谢谢。
发布于 2016-07-20 10:10:05
来自dynamicSortFilter文档:
请注意,当dynamicSortFilter为真时,不应通过代理模型更新源模型。例如,如果在QComboBox上设置代理模型,那么使用更新模型的函数(例如addItem() )的将不能像预期的那样工作。的另一种选择是将dynamicSortFilter设置为false,并在向QComboBox添加项后调用。
是否有一种在发出这些信号时手动调用排序的方法?(每次我尝试这样做时,从模型的数据()中只能得到无效的变体,从源判断,信号是在QSortFilterProxyModel完成重新设置之前发出的)
我认为,如果您将dynamicSortFilter设置为false,那么您对sort的手动调用将不会(很糟糕)拦截QSortFilterProxyModel的内部更新。至少我可以告诉您,这是我在类似场景中所做的事情,对我来说很好。
https://stackoverflow.com/questions/38478074
复制相似问题