首页 > 解决方案 > 在 python/tkinter 中配对/绑定具有动态数量的条目字段的数组

问题描述

我目前正在重新学习如何用 Python 编程。到目前为止,我已经加载了一个文本文件,它拆分为一个 2D NumPy 数组,从中我得出需要多少个输入字段才能加载字符串,这很好用。

我想做的是将这些输入字段与数组配对,这样我就可以有一个按钮来更新数组,这样我就可以根据字段是否填充来刷新窗口添加或删除输入字段。如果这不可能,还有其他方法吗?提前致谢!

from tkinter import *
import math as m
import numpy as np
from numpy import loadtxt

#Import Todo List
lines = loadtxt("Todofile.txt", dtype="object", delimiter="\n")
TDHead=np.array(lines[0::2])
TDSub=np.array(lines[1::2])
length=len(TDHead)
TDFull=np.empty((length,2), dtype="object")

#Sort Todo list into Arrays (Done to make editing easier when placed in GUI)
count=0
while count != length:
    TDFull[count,0]=TDHead[count]
    TDFull[count,1]=TDSub[count]
    count +=1

root = Tk()
root.title("Todo List")
TDframe=Frame(root)
TDframe.pack()

a=0
for x in range (length):
    EntryHead = Entry(TDframe, width=50)
    SLabel = Label(TDframe, text="Title: ")
    SLabel.grid(row=a, column=0)
    EntryHead.grid(row=a, column=1, pady=0,padx=5)
    EntryHead.insert(0,TDFull[x,0])
    EntrySub = Entry(TDframe, width=50)
    SLabel = Label(TDframe, text="Description: ")
    SLabel.grid(row=a+1, column=0)
    EntrySub.grid(row=a+1,column=1, pady=0,padx=5)
    EntrySub.insert(0,TDFull[x,1])
    a=a+3
UIHID=Label(TDframe, text="Enter New Task: ") .grid(row= a,column=0)
UIH= Entry(TDframe, width=50) .grid(row=a, column=1)
UISID=Label(TDframe, text="Describe Task: ") .grid(row= a+1, column=0)
UIS= Entry(TDframe, width=50) .grid(row= a+1, column=1)
UIB= Button(TDframe, text="Add New Item" command=resort) .grid(column=0)

def resort():
    
    pass

root.mainloop()

标签: pythonarraysnumpytkinter

解决方案


推荐阅读