我有一个树模型并使用QDataWidgetMapper
将模型数据映射到一些小部件。
在模型中,一些数据被标记为只读,因此,我想要做的是让映射的小部件(例如QLineEdit
)能够对此标志进行操作,当它指向的模型数据是只读时,将自己设置为只读。
感谢任何帮助!
答案 0 :(得分:0)
Qt的QAbstractDataModel
界面并未将一段数据的可写性视为属性:您无法读取任何内容以了解是否可以修改某个项目。可以想到一些非一般性的黑客攻击,例如尝试回写项目的当前值以检查它是否可以被更改。它们只是黑客,例如如果新值等于旧值,那么履行Qt规定的合同的模型可能会从true
返回setData
,即使是只读项目。
如果您使用的是暴露可写性属性的模型,则需要从QDataWidgetMapper
派生并自行实现该功能。