Python 向使用循环创建的条目字段添加绑定事件

Python 向使用循环创建的条目字段添加绑定事件,python,function,tkinter,tk,Python,Function,Tkinter,Tk,这里的主要目的是将事件绑定到使用循环动态创建的输入字段,然后从这些字段中获取值,无论我在创建一个函数时遇到什么问题,只要用户开始在框中键入,就可以从输入字段中获取文本 from tkinter import Tk, LEFT, BOTH, StringVar from tkinter.ttk import Entry, Frame import functools class Example(Frame): def __init__(self, parent): Fr

这里的主要目的是将事件绑定到使用循环动态创建的输入字段,然后从这些字段中获取值,无论我在创建一个函数时遇到什么问题,只要用户开始在框中键入,就可以从输入字段中获取文本

from tkinter import Tk, LEFT, BOTH, StringVar
from tkinter.ttk import Entry, Frame
import functools


class Example(Frame):
    def __init__(self, parent):
        Frame.__init__(self, parent)
        self.parent = parent
        self.initUI()

    def initUI(self):
        self.parent.title("Entry")
        self.pack(fill=BOTH, expand=1)
        self.contents = []
        self.ent = []
        for i in range(0,5):
            self.contents.append(StringVar())

        # give the StringVar a default value
        for i in range(0,5):
            self.entry = Entry(self)
            self.entry.grid(row=0,column=i)
            self.entry["textvariable"] = self.contents[i]
            self.entry.bind('<KeyRelease>', self.on_changed)
            self.ent.append(self.entry)

    def on_changed(self, event):
        print('contents: {}'.format(self.contents.get()))
        return True
def main():
    root = Tk()
    ex = Example(root)
    root.geometry("800x400")
    root.mainloop()


if __name__ == '__main__':
    main()
从tkinter导入Tk,左,两个,StringVar
从tkinter.ttk导入条目,帧
导入功能工具
类示例(框架):
定义初始化(自身,父级):
帧。\uuuu初始化(自,父)
self.parent=parent
self.initUI()
def initUI(self):
self.parent.title(“条目”)
self.pack(填充=两者,扩展=1)
self.contents=[]
self.ent=[]
对于范围(0,5)内的i:
self.contents.append(StringVar())
#给StringVar一个默认值
对于范围(0,5)内的i:
self.entry=entry(self)
self.entry.grid(行=0,列=i)
self.entry[“textvariable”]=self.contents[i]
self.entry.bind(“”,self.on_已更改)
self.ent.append(self.entry)
def on_已更改(自身、事件):
打印('contents:{}'。格式(self.contents.get())
返回真值
def main():
root=Tk()
ex=示例(根)
根几何(“800x400”)
root.mainloop()
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
main()

当您使用
bind
时,传递给回调的事件对象包括对小部件的引用,您可以使用该小部件获取条目的值

示例

def on_changed(self, event):
    entry = event.widget
    print('contents: {}'.format(entry.get()))
    return True

谢谢你,马恩!!我不知道这个小部件的参考!!