如何在tkinter GUI程序的输出组件中显示字典长度而非仅输出到CMD
调整方法
原按钮触发逻辑用print输出结果,内容只会打印到CMD控制台,要让结果显示在GUI的Text输出组件中,只需要修改回调函数的写入逻辑,同时修正代码里的变量重名问题即可。
- 变量重名问题:原代码先后用
lab变量名绑定了标题Label、输出Text组件,后续代码无法准确区分两个组件,建议把输出Text组件的变量名改成辨识度更高的output_text - 回调逻辑修改:把原来的控制台打印逻辑,替换成对Text组件的内容清空、内容插入操作
具体修改代码
- 替换输出组件的定义部分:
# 原代码段(变量和之前的标题Label重名) # lab=Text(root,width=5,height=1,font=('Times 18'),fg="black") # lab.place(x=59,y=70) # 修改后 output_text = Text(root,width=5,height=1,font=('Times 18'),fg="black") output_text.place(x=59,y=70)
- 替换按钮绑定的
clk回调函数:
# 原代码段 # def clk(): # print(len(exlist)) # 修改后 def clk(): # 清空Text组件原有内容,避免多次点击后内容堆叠 output_text.delete(1.0, END) # 把计算得到的字典长度转为字符串,插入组件显示 output_text.insert(END, str(len(exlist)))
操作说明
- Text组件的内容索引规则为
行号.列号,用delete(1.0, END)是清空组件所有内容的标准写法,不会残留之前的输出 - Text组件仅能接收字符串类型的写入内容,因此要把
len(exlist)返回的整数转成字符串,否则会触发类型报错 - 若需要保留原来的CMD打印逻辑,可在修改后的
clk函数中保留print(len(exlist))语句,不影响GUI的内容显示
内容的提问来源于stack exchange,提问作者DTambah
相关产品推荐
相关产品推荐

