如何在 Python 中将两个延迟函数绑定到一个按钮?

问题描述 投票:0回答:1
from tkinter import *
    
def update():
    myEntry.config(bg="red")
def update2():
    myEntry.config(bg="blue")

root = Tk()
myEntry = Entry(root)
myEntry.pack()
myButton = Button(text="test", command=lambda: [myEntry.after(2000, update), myEntry.after(2000, update2)])
myButton.pack()
root.mainloop()

我试图将两个延迟功能绑定到一个按钮,但只有第二个有效:(

python tkinter button lambda delayed-execution
1个回答
1
投票

创建一个函数,并从该函数调用延迟函数。我假设您实际上希望第二个函数在第一个函数之后发生 2 秒,所以我已经调整了调用

after
.

的时间
def run_test():
    myEntry.after(2000, update)
    myEntry.after(4000, update2)
...
myButton = Button(text="test", command=run_test)

虽然您可以使用

lambda
,但它会使代码更难阅读和调试,因此我总是建议尽可能使用专用函数进行回调。

© www.soinside.com 2019 - 2024. All rights reserved.