如何将循环生成的tkinter输入框的输入返回到列表中以供以后使用



很抱歉我认为这是一个愚蠢的问题。这似乎应该很简单。我正试图从一个循环生成的输入框中创建一个列表。

我有两个列表,一个列表"myLabelList"包含"作业名称、项目名称"等信息,另一个空列表"myEntryLists"用于捕获条目中的信息。

问题是,当iprint(myEntryList)时,它似乎显示的是关于条目的信息,而不是输入本身。我有一个变通办法,但它就是这样。

很抱歉,如果我的格式不好,这是我的第一篇文章。

from tkinter import *
root = Tk()
root.title("Job Information Entry")
root.geometry("400x150")
topFrame = Frame(root)
bottomFrame = Frame(root)
topFrame.grid(row=0, column=0)
bottomFrame.grid(row=1, column=0)
myLabelList = ["Enter Job Number", "Enter Project Name", "Enter Job Name", "Enter Drawing Number"]
myEntryList = []
lst = []

# this is where i seem to be having problems
def ok_button_click():
for entry in myEntryList:       # this is my workaround
lst.append(entry.get())     # this is my workaround
print(myEntryList)              # this is what im getting
print(lst)                      # this is what i want to print()

x = 0
for i in myLabelList:
myLabel = Label(topFrame, text=i)
myEntry = Entry(topFrame, width=50)
myLabel.grid(row=x, sticky=E)
myEntry.grid(row=x, column=1)
x = x + 1
myEntryList.append(myEntry)

# bottomFrame
okButton = Button(bottomFrame, text="OK", command=ok_button_click)
cancelButton = Button(bottomFrame, text="Cancel")
okButton.grid(row=0, column=0)
cancelButton.grid(row=0, column=1)
root.mainloop()

在这一行中,将Entry小部件插入myEntryList:

myEntryList.append(myEntry)

当您尝试打印它时,它会为您提供保存在列表中的Entry小部件的可打印表示。

如果您想获得输入本身,只需打印lst列表即可。

编辑:

条目是一个对象。在OOP(面向对象编程(中,您定义了表示对象的类。每个对象都有属性和方法。你可以在这里阅读更多关于OOP的内容。

Entry小部件就是一个对象示例。它具有创建该类实例(Entry()(的构造函数、类似'bg', 'fg'的属性和类似get()的方法。

当您向myEntryList插入一个Entry小部件时,您将整个对象插入到列表中,而不是它所包含的输入。为了获得输入,您需要在Entry小部件上使用get()方法。

我希望现在一切都清楚了:(

相关内容

  • 没有找到相关文章

最新更新