Skip to content

Commit 31dc34d

Browse files
committed
fix: 修复多个文件的 try-except 缩进问题
1 parent 664eecf commit 31dc34d

2 files changed

Lines changed: 274 additions & 270 deletions

File tree

desktop_qt_ui/editor/graphics_items.py

Lines changed: 41 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -192,59 +192,58 @@ def update_from_data(self, region_data: dict):
192192
# 保存选中状态
193193
was_selected = self.isSelected()
194194

195-
# 确保 region_data 包含所有必要的字段
196-
# 如果新的 region_data 缺少某些字段,从旧的 self.region_data 中复制
197-
if hasattr(self, 'region_data') and self.region_data:
198-
# 合并旧数据和新数据,新数据优先
199-
merged_data = self.region_data.copy()
200-
merged_data.update(region_data)
201-
self.region_data = merged_data
202-
else:
203-
self.region_data = region_data
195+
# 确保 region_data 包含所有必要的字段
196+
# 如果新的 region_data 缺少某些字段,从旧的 self.region_data 中复制
197+
if hasattr(self, 'region_data') and self.region_data:
198+
# 合并旧数据和新数据,新数据优先
199+
merged_data = self.region_data.copy()
200+
merged_data.update(region_data)
201+
self.region_data = merged_data
202+
else:
203+
self.region_data = region_data
204204

205-
self.desktop_geometry = DesktopUIGeometry(self.region_data)
205+
self.desktop_geometry = DesktopUIGeometry(self.region_data)
206206

207-
# lines是未旋转的世界坐标,需要转换为局部坐标
208-
model_lines = self.desktop_geometry.lines
209-
self.rotation_angle = self.desktop_geometry.angle
210-
self.visual_center = QPointF(self.desktop_geometry.center[0], self.desktop_geometry.center[1])
207+
# lines是未旋转的世界坐标,需要转换为局部坐标
208+
model_lines = self.desktop_geometry.lines
209+
self.rotation_angle = self.desktop_geometry.angle
210+
self.visual_center = QPointF(self.desktop_geometry.center[0], self.desktop_geometry.center[1])
211211

212-
# 在修改位置和旋转之前调用 prepareGeometryChange()
213-
self.prepareGeometryChange()
212+
# 在修改位置和旋转之前调用 prepareGeometryChange()
213+
self.prepareGeometryChange()
214214

215-
self.setPos(self.visual_center)
216-
self.setRotation(self.rotation_angle)
215+
self.setPos(self.visual_center)
216+
self.setRotation(self.rotation_angle)
217217

218-
# 转换为局部坐标: local = world - center
219-
self.polygons = []
220-
for i, line in enumerate(model_lines):
221-
local_poly = QPolygonF()
222-
for x, y in line:
223-
local_poly.append(QPointF(x - self.visual_center.x(), y - self.visual_center.y()))
224-
self.polygons.append(local_poly)
218+
# 转换为局部坐标: local = world - center
219+
self.polygons = []
220+
for i, line in enumerate(model_lines):
221+
local_poly = QPolygonF()
222+
for x, y in line:
223+
local_poly.append(QPointF(x - self.visual_center.x(), y - self.visual_center.y()))
224+
self.polygons.append(local_poly)
225225

226+
# 更新白框和绿框
227+
self._update_frames_from_geometry(self.desktop_geometry)
226228

227-
# 更新白框和绿框
228-
self._update_frames_from_geometry(self.desktop_geometry)
229+
# 再次调用 prepareGeometryChange() 确保 shape() 缓存被清除
230+
self.prepareGeometryChange()
229231

230-
# 再次调用 prepareGeometryChange() 确保 shape() 缓存被清除
231-
self.prepareGeometryChange()
232+
# 恢复选中状态
233+
if was_selected != self.isSelected():
234+
self.setSelected(was_selected)
232235

233-
# 恢复选中状态
234-
if was_selected != self.isSelected():
235-
self.setSelected(was_selected)
236+
self.update()
236237

237-
self.update()
238+
# 强制刷新场景空间索引 - 使用旧+新区域的并集
239+
if self.scene() and old_scene_rect is not None:
240+
from PyQt6.QtWidgets import QGraphicsScene
241+
new_scene_rect = self.sceneBoundingRect()
242+
# 合并旧和新的区域,确保空间索引完全更新
243+
update_rect = old_scene_rect.united(new_scene_rect)
244+
self.scene().invalidate(update_rect, QGraphicsScene.SceneLayer.ItemLayer)
245+
self.scene().update(update_rect)
238246

239-
# 强制刷新场景空间索引 - 使用旧+新区域的并集
240-
if self.scene() and old_scene_rect is not None:
241-
from PyQt6.QtWidgets import QGraphicsScene
242-
new_scene_rect = self.sceneBoundingRect()
243-
# 合并旧和新的区域,确保空间索引完全更新
244-
update_rect = old_scene_rect.united(new_scene_rect)
245-
self.scene().invalidate(update_rect, QGraphicsScene.SceneLayer.ItemLayer)
246-
self.scene().update(update_rect)
247-
248247
except (RuntimeError, AttributeError) as e:
249248
# Item可能在更新过程中被删除
250249
print(f"[RegionTextItem] Warning: update_from_data failed: {e}")

0 commit comments

Comments
 (0)