(self, *args, **kwargs)
| 188 | widget.blockSignals(False) |
| 189 | |
| 190 | def _setData(self, *args, **kwargs): |
| 191 | sender = self.sender() |
| 192 | info = self._widgetkey.get(sender, {}) |
| 193 | key = info.get("key", None) |
| 194 | prop: Union[QMetaProperty, None] = info.get("prop", None) |
| 195 | if key is None or prop is None: |
| 196 | return |
| 197 | |
| 198 | value = prop.read(sender) |
| 199 | if value is not None: |
| 200 | if prop.name() == "dateTime": |
| 201 | value = value.toString("yyyy-MM-dd HH:mm:ss") |
| 202 | elif prop.name() == "html" and len(sender.property("plainText")) == 0: |
| 203 | value = "" |
| 204 | |
| 205 | if value is None: |
| 206 | return |
| 207 | |
| 208 | self._timer.start(self._delay) |
| 209 | |
| 210 | # 更新关联的widget |
| 211 | for widget in self._keywidget.get(key, []): |
| 212 | if widget != sender: |
| 213 | if self.Debug: |
| 214 | print(f"view to view({widget}) = {value}") |
| 215 | self._setValue(widget, key, value, updated=True, block=True) |
| 216 | |
| 217 | # 更新关联的model |
| 218 | if self.Debug: |
| 219 | print(f"view({sender}) to model = {value}") |
| 220 | if not self._model.updateValue(key, value): |
| 221 | return |
| 222 | |
| 223 | def onItemDataChanged( |
| 224 | self, topLeft: QModelIndex, bottomRight: QModelIndex, roles: List[int] |
nothing calls this directly
no test coverage detected