feat(canvas): implement class QtSlicingCanvas
This commit is contained in:
parent
caa1f1318f
commit
ac6e4e0370
1 changed files with 29 additions and 0 deletions
|
|
@ -8,3 +8,32 @@ from .canvas_state import CanvasStateMixin
|
||||||
|
|
||||||
|
|
||||||
# QtSlicingCanvas: class definition for ScanSlicer behavior.
|
# 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
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue