Tkinter-返回一个值并关闭GUI



我是GUI和tkinter的新手。

我试图通过我用tkinter实现的GUI从用户那里获得2个输入。在用户给出输入并按下按钮后,我想返回到这两个输入,并继续用这两个输出做其他事情。我已经检查了Tkinter文本输入的返回值,关闭GUI,但它不适用于我的情况。

我尝试的是:

_Guid.py

import tkinter as tk
def get_input():
entry1 = entry1.get()
entry2 = entry2.get()
return entry1, entry2
root = tk.Tk()
root.geometry("320x240+800+300")
label1 = tk.Label(text="Label1")
label1.config(font=('Helvetica bold',16))
label1.pack()
entry1 = tk.Entry(root)
entry1.config(font=('Helvetica bold',16))
entry1.pack()
label2 = tk.Label(text="Label2")
label2.config(font=('Helvetica bold',16))
label2.pack()
entry2 = tk.Entry(root)
entry2.config(font=('Helvetica bold',16))
entry2.pack()
button = tk.Button(root, text="Start", command=get_input)
button.config(font=('Helvetica bold',16))
button.pack()
root.mainloop()

在main.py中:

import _Gui as gui
if __name__ == "__main__":
a, b = gui.get_input()
something_else(a, b)

但它也没有奏效。

提前感谢您的帮助!

您可以使用root.destroy()来销毁窗口,但函数get_input()在您按下按钮后会执行两次(另一次是在窗口被销毁后,在您的"main.py"中(,因此如果您在第一次执行中销毁了窗口,则不能使用entry1.get()

我建议你使用这个:

(_Gui.py(

import tkinter as tk
root = tk.Tk()
root.geometry("320x240+800+300")
def get_input():
global a, b
a = entry1.get()
b = entry2.get()
root.destroy()
label1 = tk.Label(text="Label1")
label1.config(font=('Helvetica bold',16))
label1.pack()
entry1 = tk.Entry(root)
entry1.config(font=('Helvetica bold',16))
entry1.pack()
label2 = tk.Label(text="Label2")
label2.config(font=('Helvetica bold',16))
label2.pack()
entry2 = tk.Entry(root)
entry2.config(font=('Helvetica bold',16))
entry2.pack()
button = tk.Button(root, text="Start", command=get_input)
button.config(font=('Helvetica bold',16))
button.pack()

(main.py(

import _Gui as gui
if __name__ == "__main__":
gui.root.mainloop()
something_else(gui.a, gui.b)

(对不起,我的英语不太好。(

相关内容

最新更新