InteractiveViewer
交互式查看器:允许用户平移、缩放和旋转所提供的“内容”。
示例
基本示例
import flet as ft
def main(page: ft.Page):
page.add(
ft.InteractiveViewer(
min_scale=0.1,
max_scale=15,
boundary_margin=ft.margin.all(20),
on_interaction_start=lambda e: print(e),
on_interaction_end=lambda e: print(e),
on_interaction_update=lambda e: print(e),
content=ft.Image(
src="https://picsum.photos/500/500",
),
)
)
ft.app(main)
属性
alignment
内部“内容”的对齐方式。
值的类型为 Alignment
。
bgcolor
背景颜色。
boundary_margin
“内容”可见边界的边距。
值的类型为 Margin
。
clip_behavior
如何裁剪“内容”。
值的类型为 ClipBehavior
,默认为 ClipBehavior.HARD_EDGE
。
constrained
在小部件树的此点处,是否将正常大小约束应用于子项。
content
要由 InteractiveViewer
转换的 Control
。
interaction_end_friction_coefficient
更改手势后的减速行为。必须大于0
。
值的类型为 float
,默认为 0.0000135
。
interaction_update_interval
这是触发on_interaction_update
事件的时间间隔(以毫秒为单位)。
值的类型为int
,默认值为0
。
max_scale
允许的最大缩放比例。必须大于或等于min_scale
。
值的类型为float
,默认值为2.5
。
min_scale
允许的最小缩放比例。必须大于0
且小于或等于max_scale
。
值的类型为float
,默认值为0.8
。
pan_enabled
是否启用平移。
值的类型为 bool
,默认为 True
。
scale_enabled
是否启用缩放。
值的类型为 bool
,默认为 True
。
scale_factor
每次指针滚动执行的缩放量。
值的类型为 float
,默认为 200.0
。
trackpad_scroll_causes_scale
在触控板上向上/向下滚动是否应导致缩放而不是平移。
值的类型为 bool
,默认为 False
。
方法
pan(dx, dy)
平移InteractiveViewer
特定的量。
它具有以下参数:
dx
:在 x 轴上平移的像素数。dy
:在 y 轴上平移的像素数。
reset()
将InteractiveViewer
重置为初始状态。默认情况下,重置立即发生,没有动画。
它具有以下参数:
animation_duration
:使用给定的持续时间为重置设置动画。值的类型为DurationValue
。
restore_state()
恢复先前使用save_state
保存的InteractiveViewer
的状态。
save_state()
保存InteractiveViewer
的当前状态,稍后可以使用restore_state
恢复。
zoom(factor)
;
缩放到特定级别。
它具有以下参数:
factor
:缩放因子。小于1
的值将缩小,大于1
的值将放大。
事件
on_interaction_end
当用户结束平移或缩放手势时触发。
事件处理程序参数的类型为 InteractiveViewerInteractionEndEvent
。
on_interaction_start
当用户开始平移或缩放手势时触发。
事件处理程序参数的类型为 InteractiveViewerInteractionStartEvent
。
on_interaction_update
当用户更新平移或缩放手势时触发。
事件处理程序参数的类型为 InteractiveViewerInteractionUpdateEvent
。