簡體   English   中英

將綁定事件添加到使用循環創建的輸入字段中

[英]Adding Bind Event To Entry Fields Created Using Loops

這里的主要目的也是將事件綁定到使用循環動態創建的輸入字段中,然后從這些字段中獲取值,但是我在這里遇到的問題是如何創建一個函數,該函數可以在用戶一旦使用時就從輸入字段中獲取文本開始在框中輸入。

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()

使用bind ,傳遞給回調的事件對象包括對小部件的引用,您可以使用該小部件獲取條目的值。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM