dragov 发表于 2024-5-3 18:03:14

root.destroy 与 root.destroy( )

from tkinter import *
root=Tk()
def a():
      root.destroy()
Button(root,text="退出",command=a).pack()
mainloop()

root.destroy 与 root.destroy( ) 的区别 ?

from tkinter import *
root=Tk()
Button(root,text="退出",command=root.destroy).pack()
mainloop()

FishC 发表于 2024-5-3 18:03:27

在Tkinter中,`root.destroy`和`root.destroy()`是相同的,都表示执行销毁窗口的操作。但是需要注意的是,在定义函数时,不要忘记加上括号`()`,以便正确地调用函数。而在`command`参数中,我们直接传递函数名,而不是函数的调用结果。所以`command=root.destroy`表示在点击按钮时执行`root.destroy()`这个函数。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

Twilight6 发表于 2024-5-3 19:49:46



对于这两段代码效果是一样的,但是前者你可以在销毁窗口之前或之后执行一些其他代码的逻辑

代码编写在函数中,销毁之前或之后需要执行的代码逻辑

在后者就是单纯按下按钮执行销毁根窗口

smallwh 发表于 2024-5-3 22:45:01

本帖最后由 smallwh 于 2024-5-3 22:46 编辑

root.destroy 是一个销毁窗口的函数,而 root.destroy() 就是调用这个函数去销毁窗口
两者的关系类似于 print 和 print('Hello') 。
>>> print
<built-in function print>
>>> print('Hello')
Hello
对于本例,两种方法效果相同。在被单击时, Button 会调用赋值给 command 的函数,相当于此时给这个函数加上括号。
而 a() 与 root.destroy() 效果相同,因为函数 a 中也会执行一次 root.destroy() 。
但是第一种写法函数 a 可以写得更复杂,实现销毁窗口前后的其他操作
页: [1]
查看完整版本: root.destroy 与 root.destroy( )