Получение значений из полей ввода данных Python
При нажатии кнопки "+" происходит автоматическое добавление строки с ячейками для ввода данных. Пользователь добавляет их столько, сколько считает нужным. Никак не удается получить эти значения и произвести расчет при нажатии кнопки "Calc". Получаю ошибку о том, что значение переменной с методом get не получено.
from tkinter import ttk
from tkinter.scrolledtext import ScrolledText
import math
window = Tk()
window.title ('ECD')
window.geometry ('1880x870+30+30')
row_counter = 2
def row_add():
global row_counter
label_text = str(row_counter-1) + '.'
Label(window, text=label_text, background=bg1, font='Arial 8 bold').grid(row=row_counter,
column=0, padx=0, pady=0, sticky='w'+'e'+'n'+'s')
Label(window, text='Casing ID', background=bg1).grid(row=row_counter, column=1, padx=0,
pady=0, sticky='w')
options_casing_id = ["mm", "in"]
casing_id_units = StringVar(value=options_casing_id[0])
casing_id_combobox = ttk.Combobox (window, textvariable = casing_id_units,
values=options_casing_id, width=4)
casing_id_combobox.grid(row=row_counter, column=2, padx=0, pady=0, sticky='e')
casing_id_entry = ttk.Entry(window, width=10)
casing_id_entry.grid(row=row_counter, column=3, padx=5, pady=5, sticky='w'+'e'+'n'+'s')
row_counter += 1
def data_get():
global casing_id_entry
casing_id = float(casing_id_entry.get())
ecd = casing_id * 1000
st.insert(END, 'ECD = ' + str(round(ecd, 2)) + ' ppg\n')
#Создаю виджеты
Button(window, command=row_add, width=3, text='+', font='Arial 8 bold').grid(row=1, column=0, padx=5, pady=5, sticky='w'+'e'+'n'+'s')
Button(window, width=3, text='Calc', font='Arial 8 bold', command=data_get).grid(row=2, column=0, padx=5, pady=5, sticky='w'+'e'+'n'+'s')
#Вывод результатов
st = ScrolledText(window, width=260, height=10, bd=1.5, font = 'Arial 10')
st.grid(row=6, padx=5, pady=5, sticky='w'+'e'+'n'+'s')
window.mainloop() ```
Источник: Stack Overflow на русском