gpt4 book ai didi

model-view-controller - 如何让选择模型与代理模型一起使用?

转载 作者:行者123 更新时间:2023-12-04 08:39:26 26 4
gpt4 key购买 nike

我有一个模型和两个 View ,设置如下:

Model ---> OSortFilterProxyModel ---> OListView
Model ------------------------------> OTableView

当用户在其中一个 View 中选择某些内容时,我希望另一个 View 反射(reflect)该选择。所以我想我会使用 QSelectionModel 将它们链接在一起。但这不起作用。我有一种感觉,这是因为 View 认为它们有两个不同的模型,而实际上它们具有相同的模型。有没有办法让它发挥作用?

最佳答案

可能发生的是 View 确实有两种不同的模型。一个是您的原始模型,另一个是排序过滤器模型。

我不确定这是否可行,这取决于 Qt 认为“已激活”的内容,但您可以将一个函数连接到每个 View 的激活插槽。这些将传递给您一个模型索引。您必须通过代理模型以适当的方向(mapFromSource 和 mapToSource)发送模型索引。然后,在另一个 View 上调用 setCurrentIndex。

激活信号的文档说明被视为“激活”的内容因平台而异。可能还有其他信号可以锁定,例如选择模型的选择更改信号。您可能需要执行不同的调用来更改用户看到的选择。最后,在派生的 QSelectionModel 中这样做可能甚至更容易,只要您记得映射到/从源模型。

关于model-view-controller - 如何让选择模型与代理模型一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/136628/

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