【发布时间】:2020-03-09 06:10:45
【问题描述】:
为什么程序在 labeler-function 之前执行另一个函数?
from tkinter import *
geni = "generating processes"
...
def labeler(texti):
activit = Label(graphics,text=texti)
activit.grid(row=0,column=2)
...
button_1=Button(graphics,text="xy!", command=lambda:[labeler(geni),otherFunction()])
...
【问题讨论】:
-
这就是关于 UI 编程的事情。没有顺序执行
-
这更像是为什么
lambda:[f1(),f2()]不按该顺序进行评估 -
您如何确定
labeler()的执行顺序?它什么都没有具有立即可见的效果,只有当您返回.mainloop()(或显式调用 Tkinter 的更新函数之一)时,才会处理对小部件的更改。 -
为什么要使用复杂的 lambda 而不是创建合适的函数?如您所见,lambda 很难调试。
-
请提供正确的minimal reproducible example。简短的回答是“tkinter 总是按照您指定的顺序执行代码”。如果它看起来不是,那是因为您的代码。如果我们看不到重现行为的代码,我们将很难提供帮助。
标签: python python-3.x tkinter