gpt4 book ai didi

python - 将命令 doSomething 和 doSomething() 传递给 Tkinter 按钮有什么区别?

转载 作者:太空宇宙 更新时间:2023-11-04 11:21:28 25 4
gpt4 key购买 nike

我想知道为什么 myBtn = Button(text="btn", command=doSomething) 不同于 myBtn = Button(text="btn", command=doSomething() )

当我创建一个按钮并添加命令 doSomehting, myBtn = Button(text="btn", command=doSomething) 时,我得到了预期的行为 - 它做了一些事情。

但是当我创建按钮并添加命令 doSomething(), myBtn = Button(text="btn", command=doSomething()) 时,它得到意外行为 - 它调用 doSoemthing() 并且点击按钮什么也不做。

为什么会这样?

from tkinter import *
import datetime
import random

def printRandNum():
random.seed()
val = random.randint(1, 1000)
print(val)


top = Tk()
now = datetime.datetime.now()

top.title("Test Window")
top.geometry('800x600')

name = Label(top, text="Alex", fg="Orange", font="monospace 36 bold", anchor="w", width=50)
theDate = Button(top, text="Click here for the date", command=printRandNum)

theDate.pack(side=BOTTOM)
name.pack(side=LEFT)
top.mainloop()

最佳答案

当您编写 doSomething, myBtn = Button(text="btn", command=doSomething 时,您正在传递 doSomething function 作为一个参数,以便 Button 可以在单击时调用它。当您编写 myBtn = Button(text="btn", command=doSomething()) 时,您是将函数的返回值作为参数传递,这意味着Button 对象不能调用doSomething 函数,因为它只获取它的返回值。

关于python - 将命令 doSomething 和 doSomething() 传递给 Tkinter 按钮有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55897784/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com