Tkinter Entry not showing the current value of textvariable

回眸只為那壹抹淺笑 提交于 2019-11-29 15:54:13

It's getting garbage collected.

You can just get rid of the function (you also shouldn't nest functions like this)

from tkinter import *
from tkinter.ttk import *

tk=Tk()

var=StringVar(value="default value")
Entry(tk, textvariable=var).pack()
Button(tk,text='OK').pack()

mainloop()

Or, if you want to keep the function.. set the stringvar as an attribute of tk or make it global.

Making it global:

from tkinter import *
from tkinter.ttk import *

tk=Tk()
var = StringVar(value="Default value")

def sub():

    Entry(tk, textvariable=var).pack()
    Button(tk,text='OK').pack()

sub()
mainloop()

As an attribute of tk:

from tkinter import *
from tkinter.ttk import *

tk=Tk()

def sub():

    tk.var = StringVar(value="Default value")
    Entry(tk, textvariable=tk.var).pack()
    Button(tk,text='OK').pack()

sub()
mainloop()
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!