我有模型的 SourceTable(QAbstractTableModel 类型),应该通过 QSortFilterProxyModel 表示,它是 GUI api 的一部分。
其中一列是复选框,它应该代表行的状态,但它也应该用于触发状态更改:
unchecked ---check---> checked
在检查操作时,我必须向服务器发送消息。然后,服务器通过 SourceTable (QAbstractTableModel) 将此检查信息发送回。然后应锁定检查以供用户干预。
------------- --------------- signal ----------------------- -------
|SourceTable|---//--->|newProxyModel| <---------- |GUI sort/filter proxy|---|TView|
------------- --------------- ----------> ----------------------- -------
^ |
-----message to server----
我应该以某种方式从 newProxyModel 获取/设置/提升 GUI 中数据更改的信号。这就是为什么 newProxy 中的“复选框”列应该被“覆盖”。
由于使用装饰器破坏了架构,我正在考虑插入另一个应该管理此列行为的代理模型。这条路好走吗?
我想知道这是否可行,以及从 GUI 模型(QSortFilterProxyModel)和服务器 SourceTable(QAbstractTableModel)拦截用户活动的简单/正确方法是什么
由于我是 Qt 模型/视图的新手,因此感谢任何建议和示例。有可能我这样做完全错误。
谢谢。