feat(canvas): implement class QtSlicingCanvas

This commit is contained in:
dev 2026-02-20 12:02:13 +00:00
parent caa1f1318f
commit ac6e4e0370

View file

@ -8,3 +8,32 @@ from .canvas_state import CanvasStateMixin
# QtSlicingCanvas: class definition for ScanSlicer behavior.
class QtSlicingCanvas(CanvasInteractionMixin, CanvasRenderMixin, CanvasStateMixin, QWidget):
AUTO_FIT_SCALE = 0.95
OFF_CANVAS_COLOR = QColor(38, 38, 38)
CORNER_HANDLE_HIT_RADIUS = 12.0
SIDE_HANDLE_HIT_RADIUS = 14.0
SIDE_HANDLE_SIZE_ACTIVE = 11.0
SIDE_HANDLE_SIZE_INACTIVE = 9.0
active_slice_changed = Signal(int)
# __init__: function definition for ScanSlicer behavior.
def __init__(self, parent=None):
super().__init__(parent)
self.setMouseTracking(True)
self.setMinimumSize(640, 480)
self.zoom = 1.0
self.image = None
self.pan_offset = QPointF(0.0, 0.0)
self.slices = []
self.active_slice_index = None
self.corner_dragging = None
self.side_dragging = None
self.rotation_dragging = None
self.box_dragging = None
self.rotate_handles_mode = False
self.panning = False
self.last_mouse_pos = QPointF(0.0, 0.0)
self.user_transformed_view = False