使用tkinter填充类中的输入字段

时间:2017-04-10 15:10:42

标签: python tkinter

我想绑定一个默认值,使用tkinter将其编辑到一个输入框中。当我从类中删除它时,下面的解决方案有效,但在类中不起作用。我的最终目标是根据sql的结果动态更新此值,但首先我需要获取要显示的默认值。那就是我现在遇到麻烦的地方。我非常感谢您对我失踪的所有见解。

from tkinter import *
from tkinter.ttk import *

class Application(Frame):
    def __init__(self, master):
        Frame.__init__(self,master)
        self.grid()
        self.create_widgets()

    def create_widgets(self):

        v = IntVar()
        self.JobNumber = Entry(self, width = 45, text = v  ) # Job Number 
        self.JobNumber.grid(row = 2, column = 0, columnspan = 1, rowspan = 1, sticky = W)
        v.set(100)

root = Tk()
app = Application(root)
root.mainloop()

1 个答案:

答案 0 :(得分:1)

问题在于您使用ttkttk对局部变量非常敏感。在这种情况下,v是本地的并且正在收集垃圾。

无需使用textvariable。您可以使用其insert方法设置Entry窗口小部件的值:

self.JobNumber.insert(0, "this is the default value")

如果您确实需要使用textvariable,请确保它不是本地变量。例如:

self.v = IntVar()
...
self.v.set(100)