为 Tkinter 中的条目赋值的最简单方法是什么,python?
What is the easiest way to give values to entries in Tkinter, python?
我的问题是我不知道应该如何编写 get() 方法。因此,我创建了第二个空列表,当我将原始列表附加到第二个列表时,它们获得了值。这显然需要太多内存,而且太复杂(而且荒谬)。
from tkinter import *
root = Tk()
Car = ['BMW', 'Mercedes', 'Ferrari', 'Ford', 'Toyota']
Attributes = ['Country', 'Modell', 'Color', 'Year', 'Price']
entriesList = []
entriesList2 = []
def appendToDict():
for i in entriesList:
entriesList2.append(i.get()) # must be simplier way
print(entriesList2)
for i in range(len(Attributes)):
myLab = Label(root, text=Car[i])
myLab.grid(row=0, column=i+1)
myLab2 = Label(root, text=Attributes[i])
myLab2.grid(row=i+1, column=0)
for j in range(len(Car)):
myEntry = Entry(root)
myEntry.grid(row=i+1, column=j+1)
entriesList.append(myEntry)
MyButton = Button(root, text='Click me!', command=appendToDict).grid(row=7, column=3)
root.mainloop()
我试过了,但它在第 13 行不起作用:
i = i.get()
那么,最简单的方法是什么?
你可以
使用 map
,将函数应用于 iterable.
中的所有项目
map_object = map(lambda ent:ent.get(), entriesList)
entriesList2 = list(map_object)
使用列表理解(@CoolCloud 在评论中也提到)
entriesList2 = [i.get() for i in entriesList]
我的问题是我不知道应该如何编写 get() 方法。因此,我创建了第二个空列表,当我将原始列表附加到第二个列表时,它们获得了值。这显然需要太多内存,而且太复杂(而且荒谬)。
from tkinter import *
root = Tk()
Car = ['BMW', 'Mercedes', 'Ferrari', 'Ford', 'Toyota']
Attributes = ['Country', 'Modell', 'Color', 'Year', 'Price']
entriesList = []
entriesList2 = []
def appendToDict():
for i in entriesList:
entriesList2.append(i.get()) # must be simplier way
print(entriesList2)
for i in range(len(Attributes)):
myLab = Label(root, text=Car[i])
myLab.grid(row=0, column=i+1)
myLab2 = Label(root, text=Attributes[i])
myLab2.grid(row=i+1, column=0)
for j in range(len(Car)):
myEntry = Entry(root)
myEntry.grid(row=i+1, column=j+1)
entriesList.append(myEntry)
MyButton = Button(root, text='Click me!', command=appendToDict).grid(row=7, column=3)
root.mainloop()
我试过了,但它在第 13 行不起作用:
i = i.get()
那么,最简单的方法是什么?
你可以
使用
中的所有项目map
,将函数应用于 iterable.map_object = map(lambda ent:ent.get(), entriesList) entriesList2 = list(map_object)
使用列表理解(@CoolCloud 在评论中也提到)
entriesList2 = [i.get() for i in entriesList]