如何在Python 3的Tkinter标签中显示指定变量内容
解决Tkinter标签无法显示商品详情的问题
你遇到的问题核心在于**print()函数的返回值是None**,所以你执行b = print(*newlist)后,b实际是空值,自然标签里显示不出内容,只有控制台会打印结果。
修正步骤:
- 先把
newlist中的所有元素拼接成一个带格式的完整字符串(保留换行结构),而不是直接用print输出 - 将这个拼接好的字符串赋值给变量,再传入Tkinter的Label组件
完整修正代码:
from tkinter import Tk, Label # 补充原代码缺失的组件导入 price_audible = ['$1.99', '$1.50', '$1.00', '$1.99', '$1.50', '$1.00', '$1.99', '$1.50', '$1.00', '$1.99'] description_audible = ['A', 'b', 'c', 'd', 'c', 'e', 'f', 'g', 'h', 'i'] newlist = [] for m in range(0, 10): # 用f-string简化格式拼接,更易读 var_1 = f"#{description_audible[m]}\n({price_audible[m]})\n" newlist.append(var_1) # 将列表元素拼接成一个可直接显示的字符串 b = '\n'.join(newlist) dash_1 = Tk() dash_1.configure(bg='red') dash_1.title("Amazon Bestsellers Audible") Label(dash_1, text="Amazon Bestsellers Audible", font=('Arial', 14), bg='red', fg='floralwhite').pack() # 传入拼接好的字符串,添加wraplength让内容自动换行适配窗口 Label(dash_1, text=b, bg='red', fg='white', wraplength=300, justify='left').pack() dash_1.mainloop()
关键修改点说明:
- 替换
b = print(*newlist)为b = '\n'.join(newlist):把列表里的每一项用换行符连接,生成完整的可显示文本 - 用f-string重构
var_1的生成逻辑,代码更简洁直观 - 给内容标签添加
wraplength和justify参数,确保长内容能在窗口内正常换行排版 - 补充了Tkinter组件的导入语句(原代码缺失这部分会直接报错)
修改后,商品详情就会正常显示在Tkinter窗口的标签中,而不是仅在控制台打印了。
内容的提问来源于stack exchange,提问作者Sharafat
相关产品推荐
相关产品推荐

