| 23 | |
| 24 | |
| 25 | class QJsonItem(QStandardItem): |
| 26 | Sep = "/" |
| 27 | EditRole = Qt.EditRole |
| 28 | KeyRole = Qt.UserRole + 1 |
| 29 | ValueRole = Qt.UserRole + 2 |
| 30 | DatasRole = Qt.UserRole + 3 |
| 31 | PathRole = Qt.UserRole + 4 |
| 32 | |
| 33 | def __init__( |
| 34 | self, |
| 35 | *args, |
| 36 | key: Union["QJsonItem", None] = None, # 上一级key item |
| 37 | value: Union["QJsonItem", None] = None, # 当前value item |
| 38 | editAble: bool = True, |
| 39 | role: int = Qt.UserRole + 1, |
| 40 | ): |
| 41 | super().__init__(*args) |
| 42 | self.setInfo(key, value, None, editAble, role) |
| 43 | |
| 44 | def clear(self): |
| 45 | for _ in range(self.rowCount()): |
| 46 | self.removeRow(0) |
| 47 | |
| 48 | def setInfo( |
| 49 | self, |
| 50 | key: Union["QJsonItem", None] = None, |
| 51 | value: Union["QJsonItem", None] = None, |
| 52 | datas: Any = None, |
| 53 | editAble: bool = True, |
| 54 | role: int = Qt.UserRole + 1, |
| 55 | edit=None, |
| 56 | ): |
| 57 | self.setEditable(editAble) |
| 58 | self._role = role |
| 59 | self.keyItem = key |
| 60 | self.valueItem = value |
| 61 | self.edit = edit |
| 62 | self.datas = datas |
| 63 | |
| 64 | @property |
| 65 | def keyItem(self) -> Union["QJsonItem", None]: |
| 66 | # 上一级key item |
| 67 | item = self.data(self.KeyRole) |
| 68 | if not isinstance(item, QJsonItem): |
| 69 | return None |
| 70 | return item |
| 71 | |
| 72 | @keyItem.setter |
| 73 | def keyItem(self, value: "QJsonItem") -> None: |
| 74 | self.setData(value, self.KeyRole) |
| 75 | |
| 76 | @property |
| 77 | def valueItem(self) -> "QJsonItem": |
| 78 | # 当前value item |
| 79 | return self.data(self.ValueRole) |
| 80 | |
| 81 | @valueItem.setter |
| 82 | def valueItem(self, value: "QJsonItem") -> None: |
no outgoing calls
no test coverage detected