【发布时间】:2019-10-04 21:20:39
【问题描述】:
我有
- 一个向量A
- 两个 QTableModel:a 和 b
- 还有两个QTableView:c和d
a是c的模型,b是d的模型
这两个模型以两种不同的方式呈现相同的数据 (A)。 问题是,当我从视图 b 使用模型 a 编辑数据时;视图 d 不会更改数据(不会“更新视图”),直到我单击它(当它设置焦点时)。 我在 a 和 b 中的每个 setData 函数中发出 dataChanged。 最后我尝试连接数据变化信号:
QObject::connect(a, SIGNAL(dataChanged(QModelIndex,QModelIndex)), b, SIGNAL(dataChanged(QModelIndex,QModelIndex)));
这并不能解决问题。
【问题讨论】:
-
不能在两个视图之间共享一个模型吗?
-
我需要 data() 函数的两种不同行为。不,我不能,我需要两个使用相同数据向量的模型
-
@Francesco 哦,请考虑不要那样使用模型!也许我没有得到任何东西,但它不符合您的需要有 1 个模型,包含数据和
QAbstractProxyModel的两个后代,与之连接?这些后代可以覆盖他们的data()。尽管这是一种可能的方法,但这可能会让您免受黑客信号的影响。 -
太棒了!我只是从 qitemproxymodel 中导出了第二个模型并稍微编辑了它!非常感谢