You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flet中鼠标按下与释放事件是什么?Button组件释放事件在哪?

Flet按钮释放事件及鼠标按下/释放事件说明

核心结论

Flet的标准按钮组件(如ElevatedButton)确实没有单独暴露on_release回调,但所有Flet控件都支持通用的指针事件,可以直接通过这些事件实现按下和释放的监听:

  • on_pointer_down:鼠标(或触摸)按下瞬间触发
  • on_pointer_up:鼠标(或触摸)释放瞬间触发

实现示例

方法1:直接给按钮绑定指针事件

修改测试代码,直接给ElevatedButton添加指针事件回调:

import flet as ft

async def main(page: ft.Page):
    async def on_click(e):
        print("clicked(按下+释放完成后触发)")
    
    async def on_pointer_down(e):
        print("鼠标按下")
    
    async def on_pointer_up(e):
        print("鼠标释放")

    page.add(
        ft.ElevatedButton(
            "T",
            on_click=on_click,
            on_pointer_down=on_pointer_down,
            on_pointer_up=on_pointer_up
        )
    )

ft.app(main)

方法2:用GestureDetector包裹按钮(适合复杂手势场景)

如果需要监听更多手势(如长按、双击),可以用GestureDetector组件包裹按钮,它支持更丰富的手势事件:

import flet as ft

async def main(page: ft.Page):
    async def on_click(e):
        print("clicked")
    
    async def on_press(e):
        print("鼠标按下")
    
    async def on_release(e):
        print("鼠标释放")

    page.add(
        ft.GestureDetector(
            content=ft.ElevatedButton("T", on_click=on_click),
            on_press=on_press,
            on_release=on_release
        )
    )

ft.app(main)

补充说明

  • on_click事件的触发逻辑:它是在用户完成"按下+释放"的完整动作后才会触发,相当于on_pointer_down + on_pointer_up的组合回调。
  • 指针事件的适用性:除了按钮,所有Flet可视化控件都支持on_pointer_down、on_pointer_up、on_pointer_move等底层指针事件,可用于实现自定义交互逻辑。

内容的提问来源于stack exchange,提问作者jett chen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 14:41:08