如何使用tkinter在新窗口中显示按钮命令的输出?

时间:2019-03-18 20:40:41

标签: python user-interface tkinter

我已经成功创建了一个GUI,该GUI可以接受用户输入并提供所需的输出,但是我似乎无法弄清楚如何在另一个窗口而不是仅在IDE控制台中显示此输出。我的目标是,一旦用户单击“计算BMI”,就会在输出中弹出一个窗口,但是到目前为止,输出仅显示在控制台中。我一直在寻找解决方案,但似乎无法弄清楚我可以使用哪些工具来实现这一目标。我不熟悉GUI,因此不胜感激。

from tkinter import *

root = Tk()

def myBMI():
    weight = float(Entry.get(weight_field))
    height = float(Entry.get(height_field))
    bmi = (weight*703)/(height*height)
    print(bmi)

height_label = Label(root, text="Enter your height: ")
height_field = Entry(root)
height_field.grid(row=0, column=1)
height_label.grid(row=0, sticky=E)

weight_label = Label(root, text="Enter your weight: ")
weight_field = Entry(root)
weight_field.grid(row=1, column=1)
weight_label.grid(row=1, sticky=E)

compute_bmi = Button(root, text="Compute BMI", command=myBMI)
compute_bmi.grid(row=2)

root.mainloop()

1 个答案:

答案 0 :(得分:1)

tkinter的“弹出窗口”通常应通过tk.TopLevel()方法处理!这将生成一个可以命名的新窗口或在其中放置按钮,例如:

top = Toplevel()
top.title("About this application...")

msg = Message(top, text=about_message)
msg.pack()

button = Button(top, text="Dismiss", command=top.destroy)
button.pack()

因此,除了print(bmi)之外,您还可以执行以下操作:

top = tk.Toplevel()
msg = tk.Label(top, text=bmi)
msg.pack()

更多文档可在http://effbot.org/tkinterbook/toplevel.htm上找到!