如何修改Python3中通过for循环添加到Flet页面的指定按钮颜色?
解决Flet按钮点击后变色的问题
你只需要在点击事件处理函数中,通过事件对象获取被点击的按钮,修改其颜色后刷新页面即可。修改后的完整代码如下:
import flet as fl def main(page: fl.Page): def change_color(e): # 获取被点击的按钮并修改颜色 e.control.color = 'red' # 刷新页面以显示颜色变化 page.update() column = fl.Column(controls=[fl.ElevatedButton(n, color='green', on_click=change_color) for n in range(5)]) page.add(column) fl.app(target=main)
关键说明:
e.control是Flet事件对象自带的属性,它直接指向触发当前事件的控件(也就是你刚点击的那个按钮)- 修改控件属性后,必须调用
page.update()来通知Flet更新UI,否则颜色变化不会在页面上显示出来
内容的提问来源于stack exchange,提问作者Tommy
相关产品推荐
相关产品推荐

