我正在尝试从文本小部件中获取用户输入并将其存储在变量中,以便稍后在我的代码中使用
self.dataset = Text(master)
self.dataset.pack()
self.data = self.dataset.get('1.0', 'end')
ttk.Button(master, text="print dataset", command=lambda: print(self.data).pack()
当我尝试按下按钮时,它会打印一个空字符串。任何想法为什么会这样?
答案 0 :(得分:1)
布莱恩的评论是正确的,您非常非常快速地获取数据,然后从未更新数据。要解决此问题,因为您需要稍后引用它,您需要使用set
之类的内容,例如tkinter StringVar
;然后您的按钮命令可以变为
lambda: self.data.set(self.dataset.get('1.0','end'))
或者,由于此代码显然来自一个类,因此您始终可以在函数中设置数据:
def setdata(self):
self.data = self.dataset.get('1.0','end')
你获取该数据的按钮只有self.setdata的命令;你可以保留当前按钮,它应该打印现有的数据集。