Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt 如果QDataWidgetMapper映射的数据为只读,如何将QLineEdit设置为只读?_Qt_Pyqt_Model View - Fatal编程技术网

Qt 如果QDataWidgetMapper映射的数据为只读,如何将QLineEdit设置为只读?

Qt 如果QDataWidgetMapper映射的数据为只读,如何将QLineEdit设置为只读?,qt,pyqt,model-view,Qt,Pyqt,Model View,我有一个树模型,并使用QDataWidgetMapper将模型数据映射到一些小部件 在模型中,一些数据被标记为只读,因此,我想做的是让映射的小部件(例如,QLineEdit)能够根据该标记进行操作,并在其指向的模型数据为只读时将自身设置为只读 感谢您的帮助 Qt的QAbstractDataModel接口没有将数据段的可写性作为属性公开:您无法读取任何内容来知道是否可以修改某个项。你可以想到一些非常规的黑客行为,比如试图写回项目的当前值以检查它是否可以更改。它们只是黑客行为,例如,如果新值等于旧值

我有一个树模型,并使用
QDataWidgetMapper
将模型数据映射到一些小部件

在模型中,一些数据被标记为只读,因此,我想做的是让映射的小部件(例如,
QLineEdit
)能够根据该标记进行操作,并在其指向的模型数据为只读时将自身设置为只读


感谢您的帮助

Qt的
QAbstractDataModel
接口没有将数据段的可写性作为属性公开:您无法读取任何内容来知道是否可以修改某个项。你可以想到一些非常规的黑客行为,比如试图写回项目的当前值以检查它是否可以更改。它们只是黑客行为,例如,如果新值等于旧值,则履行Qt规定的合同的模型可能会从
setData
返回
true
,即使在只读项上也是如此


如果您使用的模型公开了writability属性,您需要从
QDataWidgetMapper
派生并自己实现该功能。

Qt的
QAbstractDataModel
接口不会将数据段的可写性作为属性公开:您无法读取任何内容来了解某个项是否可以修改。你可以想到一些非常规的黑客行为,比如试图写回项目的当前值以检查它是否可以更改。它们只是黑客行为,例如,如果新值等于旧值,则履行Qt规定的合同的模型可能会从
setData
返回
true
,即使在只读项上也是如此


如果您使用的模型公开了writability属性,那么您需要从
QDataWidgetMapper
派生并自己实现该功能。

?对于QDataWidgetMapper本身来说似乎是一个有趣的功能。。。介意在bugtracker上建议吗?@peppe我相信已经有人提交了Qt4.8的bug报告,()。然后,由于Qt4向Qt5的转变,它被关闭。我不熟悉Qt bug报告是如何工作的,但我会在有时间的时候研究它。@ekhumoro谢谢你的建议,它应该会工作的。我真的希望QDataWidgetMapper能够理解这些标志:(?对于QDataWidgetMapper本身来说似乎是一个有趣的功能…介意在bugtracker上建议它吗?@peppe我相信有人已经提交了Qt4.8的bug报告,()。然后由于Qt4到Qt5的转换而关闭。我不熟悉Qt错误报告的工作原理,但会在有时间时进行研究。@ekhumoro感谢您的建议,它应该可以工作。我真的希望QDataWidgetMapper能够理解这些标志:(>>Qt的QAbstractDataModel接口不公开数据段的可写性>>Qt的QAbstractDataModel接口不公开数据段的可写性