首页 > 解决方案 > 如何使用 tkinter 在新窗口中显示按钮命令的输出?

问题描述

我已经成功创建了一个接受用户输入并提供所需输出的 ​​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()

标签: pythonuser-interfacetkinter

解决方案


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找到!


推荐阅读