我想绑定一个默认值,使用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()
答案 0 :(得分:1)
问题在于您使用ttk
,ttk
对局部变量非常敏感。在这种情况下,v
是本地的并且正在收集垃圾。
无需使用textvariable
。您可以使用其insert方法设置Entry
窗口小部件的值:
self.JobNumber.insert(0, "this is the default value")
如果您确实需要使用textvariable
,请确保它不是本地变量。例如:
self.v = IntVar()
...
self.v.set(100)