栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Python-tkinter:后方法如何使用

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python-tkinter:后方法如何使用

您需要给定一个在时间延迟后要调用的函数,作为第二个参数after:

after(delay_ms,callback = None,* args)

注册在给定时间后调用的警报回调。

因此,您真正想要做的是:

tiles_letter = ['a', 'b', 'c', 'd', 'e']def add_letter():    rand = random.choice(tiles_letter)    tile_frame = Label(frame, text=rand)    tile_frame.pack()    root.after(500, add_letter)    tiles_letter.remove(rand)  # remove that tile from list of tilesroot.after(0, add_letter)  # add_letter will run as soon as the mainloop starts.root.mainloop()

您还需要通过重复调用after回调函数内部来计划要再次调用的函数,因为after仅执行一次给定的函数。文档中也对此进行了说明:

对于此方法的每次调用,该回调仅被调用一次。要继续调用该回调,您需要在自身内部重新注册该回调

请注意,一旦您用完了中的所有条目,您的示例就会引发异常

tiles_letter
,因此您需要更改逻辑以处理您想要的任何情况。最简单的方法是在的开头添加一个检查,
add_letter
以确保列表不为空,
return
即使列表为空:

def add_letter():    if not tiles_letter:        return    rand = random.choice(tiles_letter)    tile_frame = Label(frame, text=rand)    tile_frame.pack()    root.after(500, add_letter)    tiles_letter.remove(rand)  # remove that tile from list of tiles


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/451857.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号