MCPcopy Create free account
hub / github.com/PyQt5/PyQt / __loadData

Method __loadData

QTreeView/Lib/qjsonmodel.py:140–162  ·  view source on GitHub ↗
(self, data: Any)

Source from the content-addressed store, hash-verified

138 super().setData(data, role)
139
140 def __loadData(self, data: Any) -> None:
141 # 数组类型的key是索引, 不允许修改
142 isArray = isinstance(data, (list, tuple))
143 keyEditAble = not isArray
144 datas = (
145 data.items()
146 if isinstance(data, dict)
147 else enumerate(data)
148 if isArray
149 else []
150 )
151
152 for key, value in datas:
153 itemKey = QJsonItem(str(key))
154 itemValue = QJsonItem()
155
156 # 先添加items
157 self.appendRow([itemKey, itemValue])
158
159 itemKey.setInfo(self, itemValue, value, keyEditAble, edit=key)
160 # key对应的后面的空列不允许修改
161 valueEditAble = not isinstance(value, (list, tuple, dict))
162 itemValue.setInfo(itemKey, None, value, valueEditAble, QJsonItem.ValueRole)
163
164 def updateValue(self, value: Any) -> bool:
165 itemValue: Union[QJsonItem, None] = self.valueItem

Callers 1

datasMethod · 0.95

Calls 3

setInfoMethod · 0.95
QJsonItemClass · 0.85
appendRowMethod · 0.80

Tested by

no test coverage detected