如何使用Tkinter在UI界面中展示终端输出内容?
解决Tkinter中无法在Label展示计算结果的问题
原代码核心问题
print()函数返回值为None,你将其赋值给result11,导致Label最终显示None而非目标文本。- 重复创建Label组件,未复用已有的UI元素,造成冗余。
修改后的完整代码
from tkinter import Tk, Button, Label # 假设total_investment_ret为已定义变量,此处给出示例值 total_investment_ret = 15600.89 Multiply = Tk() Multiply.geometry('500x700+700+200') Multiply.title('SuperTrend Backtesting') def TimesTable(): # 拼接要显示的完整文本,而非用print赋值 result_text = f'Profit gained from the ST strategy by investing $100k : {total_investment_ret}' # 更新已有Label的文本内容 result1.config(text=result_text) # 若需点击按钮后关闭窗口,取消下一行注释 # Multiply.destroy() # 先创建Label并保存引用,避免直接赋值grid()的返回值(None) result1 = Label(Multiply, justify='center') result1.grid(row=5, column=6) button1 = Button(Multiply, text='Run and close the window', command=TimesTable) button1.grid(row=1, column=6) label1 = Label(Multiply, text=' ') label1.grid(row=2, column=6) QUIT = Button(Multiply, text='Quit', fg='Red', command=Multiply.destroy) QUIT.grid(row=3, column=6) label1 = Label(Multiply, text=' ') label1.grid(row=4, column=6) label1 = Label(Multiply, text=' ') label1.grid(row=6, column=6) Multiply.mainloop()
关键修改说明
- 替换print赋值为文本拼接:使用f-string将提示文本与
total_investment_ret拼接成完整字符串,确保得到可显示的有效内容。 - 复用已有Label组件:先创建
result1Label并保存引用(注意不要将grid()的返回值赋值给变量,因为grid()返回None),后续在函数中通过config(text=...)直接更新文本,避免重复创建组件。 - 可选窗口关闭逻辑:如果需要点击按钮后关闭窗口,取消函数中
Multiply.destroy()的注释即可。
内容的提问来源于stack exchange,提问作者user20503383
相关产品推荐
相关产品推荐

