Добрый день,
Кодер Noob здесь.
Я просмотрел эти форумы и нашел несколько похожих вопросов, но я пытался экстраполировать его на мой конкретный пример.
Я могу получить поле ввода для заполнения, хотя после нажатия кнопки «График» я не могу получить значения ввода из каждого поля ввода для печати. Если я что-то введу, все, что я когда-либо получу, это следующий вывод:
.!frame.!entry
.!frame2.!entry
.!frame3.!entry
.!frame4.!entry
.!frame5.!entry
.!frame6.!entry
Вот мой код:
import tkinter as tk
fields = ('Input panel major length',
'Input panel intermediate length', 'Input drillhole average length',
'Input Conversion rate', 'Geostats Interpolation Parameters: Major (Z)',
'Geostats Interpolation Parameters: Intermediate (Y)')
def calcs(values):
for value in values:
print(values[value])
def makelines(root, fields):
entries = {}
for field in fields:
row = tk.Frame(root)
lab = tk.Label(row, width=50, text=field+": ", anchor='w')
ent = tk.Entry(row)
row.pack(side=tk.TOP,
fill=tk.X,
padx=5,
pady=5)
lab.pack(side=tk.LEFT)
ent.pack(side=tk.RIGHT,
expand=tk.YES,
fill=tk.X)
entries[field] = ent
return entries
if __name__ == '__main__':
root = tk.Tk()
root.title('Plot')
root.geometry('800x400')
ents = makelines(root, fields)
b2 = tk.Button(root, text='Quit', command=root.quit)
b2.pack(side=tk.RIGHT, padx=5, pady=5)
b1 = tk.Button(root, text='Plot',
command=(lambda e=ents: calcs(e)))
b1.pack(side=tk.LEFT, padx=5, pady=5)
root.mainloop()