python - 如何使用 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()
解决方案
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()
推荐阅读
- python - 元组的第一个值的唯一元组列表
- sql-server - 获取 ID 日期和正负天数之间的日期
- javascript - Cypress,响应正文为 BLOB 而不是 JSON,但 chrome devtools 中的 JSON
- php - 使用 Onesignal 将消息推送到 Android 的 PhP 脚本返回 false
- python - 将文本转换为按特定模式分隔的 csv 行
- c - 在 C/C++ 中使用 libcurl 实现 CURL 命令
- python - 哪个 PIP 版本将支持哪个 python 版本
- javascript - 如何使多个按钮“单击以显示”在 javascript 中工作?
- python - 如何根据条件将中心列放在 3d 数组中?
- c++ - 读取字符串字符时出错 [C++]