【问题标题】:accessing multiple entry widgets using an array [duplicate]使用数组访问多个条目小部件[重复]
【发布时间】:2020-12-21 19:50:31
【问题描述】:

我编写了一个程序,它使用 for 循环创建标签和条目小部件。 我想将每个条目小部件保存在一个数组中,而不是分别访问每个条目小部件(对于这个例子,我想在每个条目小部件中放置单词“apple”。

这是我的代码:

import tkinter as tk

fields = 'last name', 'first name', 'job', 'state'

def makeform (root, fields):
    frame1 = tk.frame(root)
    frame1.pack()
    entries = []
    for I in range[0,4]
       lab = tk.Label(frame1,text=fields[I]).grid(row=I, column=0)
       ent = tk.Entry(frame1).grid(row=I, column=1)
       entries.append((field[I],ent))
    return entries

if _name_=="_main_":
    root=tk.Tk()
    ents=makeform(root, fields)
    for ent in ents:
        print (ents)
        ent[1].delete(0, END)
        ent[1].insert(0, "apple")

    
     root.mainloop

并得到一个 'attributeError: Nonetype object has no attribute 'delete'' 'print(ent[1])' 命令没有打印出来。

我错过了什么?如何将条目小部件保存在数组中(它们的位置?)

谢谢

【问题讨论】:

    标签: python arrays tkinter tkinter-entry


    【解决方案1】:

    尝试发布完全有效的代码。我必须修复您代码中的几个错误才能重现您的错误(请参阅下面的小修复)。

    主要问题是您需要将tk.Entry(..) 的结果保存在一个变量中,然后调用ent.grid(...),因为ent.grid(...) 返回None,而不是您希望的tk.Entry

    import tkinter as tk
    
    fields = 'last name', 'first name', 'job', 'state'
    
    
    def makeform(root, fields):
        frame1 = tk.Frame(root)
        frame1.pack()
        entries = []
        for I in range(0, 4):
            lab = tk.Label(frame1, text=fields[I]).grid(row=I, column=0)
            ent = tk.Entry(frame1)
            ent.grid(row=I, column=1)
            entries.append((fields[I], ent))
        return entries
    
    
    if __name__ == '__main__':
        root = tk.Tk()
        ents = makeform(root, fields)
        for ent in ents:
            print(ents)
            ent[1].delete(0, tk.END)
            ent[1].insert(0, "apple")
    
        root.mainloop()
    

    【讨论】:

    • 哇,谢谢!现在我明白其中的区别了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-01
    • 1970-01-01
    • 2020-10-25
    • 1970-01-01
    • 2013-06-17
    相关资源
    最近更新 更多