【发布时间】:2016-09-20 18:18:02
【问题描述】:
所以当我注意到这个有趣的行为时,我正在编写一个简短的代码来测试一些东西。
import tkinter
from tkinter import *
master=tkinter.Tk()
master.geometry("800x850+0+0")
master.configure(background="lightblue")
def d():
master.destroy()
button=Button(master, text="asdf", command=d).pack()
master.mainloop()
该按钮按预期关闭窗口,但是当我单击左上角按钮上的红色按钮(从实际窗口,而不是 tkinter)时,程序卡住并且没有响应。 但是,当我更改代码以删除按钮中的文本时,如下所示:
import tkinter
from tkinter import *
master=tkinter.Tk()
master.geometry("800x850+0+0")
master.configure(background="lightblue")
def d():
master.destroy()
button=Button(master, command=d).pack()
master.mainloop()
它现在可以正常工作了。窗口中的 tkinter 按钮和实际窗口中的红色按钮都按预期关闭了窗口。 为什么会这样? 我在 Mac 上使用 python 3.5,以防万一。
【问题讨论】:
-
只是一种预感,但是如果将这些行拆分为:
button=Button(master, text="asdf", command=d)和下一行:button.pack(),会发生什么?它应该可以正常工作,在我的系统上也是如此(Ubuntu 16.04)