1

程序员,我想我有一个新手问题:当我点击一个按钮时,我的窗口消失了。如果我将 root.mainloop() 作为 buttonClicked 函数的最后一行放入,那么程序很好 - 但它看起来不正确......这里有什么问题?

import tkinter as tk

def buttonClicked(event):
    print(tf1.get())
    tf1Content.set("button clicked")
    # root.mainloop() ... would work

root = tk.Tk()

frame = tk.Frame(root, relief="ridge", borderwidth=2)
frame.pack(fill="both",expand=1)
label = tk.Label(frame, text="Input:")
label.pack(expand=1)
tf1Content = tk.StringVar()
tf1 = tk.Entry(frame, text="input here", textvariable=tf1Content)
tf1.pack(expand=1)
bOk = tk.Button(frame,text="OK",command=root.destroy)
bOk.bind("<Button-1>", buttonClicked)
bOk.widget = "bOK"
bOk.pack(side="bottom")

tf1.focus()

root.mainloop()
4

1 回答 1

0

原来你只是复制了这一行:

bOk = tk.Button(frame,text="OK",command=root.destroy)

它将调用绑定root.destroy()到按钮按下。

解决方法是删除command参数:

bOk = tk.Button(frame,text="OK")
于 2022-02-10T20:41:17.650 回答