最近我在编写一个程序,想在tkinter.Text上显示程序的所有变量。(如:__name__的值为:__main__)
我想要达到的结果:
name__的值为:__main
welcome的值为:Hello!
name__的值为:__main
welcome的值为:Hello!
基本的实现逻辑如楼上所述,有两处需修改和完善,一是globals()返回全局变量的字典,需要用items()返回视图对象供拆包遍历,否则会报错。二是在写入文本框时加换行符,分行显示变量及其值。完整可实现代码如下:
from tkinter import *
tk=Tk()
tk.title("MainWindow")
window=tk
txt=Text(window)
welcome='Hello!'
def mycmd():
for k,v in globals().items():
txt.insert(END,str(k)+"的值是"+str(v)+'\n')
btn=Button(window,command=mycmd)
txt.pack()
btn.pack()
btn.config(text="显示变量")
tk.mainloop()