Как увеличить колесо прокрутки при добавлении элемента во фрейм?

Есть область где динамически добавляются элементы, их нужно прокручивать с помощью scrollbar, и когда их добавляешь заранее, то всё работает, а когда добавляешь динамически, то всё ломается. Можно ли это исправить?

вот код:

import tkinter as tk

class Rows():

    def __init__(self, row_place, name='', time1='', time2='', phone=''):

        self.name = name
        self.time1 = time1
        self.time2 = time2
        self.phone = phone

        self.txt_names = tk.Entry(row_place, width=20)
        self.txt_names.grid(column=0, row=Window.row_num)
        self.txt_names.insert(0, self.name)

        self.txt_time1 = tk.Entry(row_place, width=10)
        self.txt_time1.grid(column=1, row=Window.row_num)
        self.txt_time1.insert(0, self.time1)

        self.txt_time2 = tk.Entry(row_place, width=10)
        self.txt_time2.grid(column=2, row=Window.row_num)
        self.txt_time2.insert(0, self.time2)

        self.txt_phone = tk.Entry(row_place, width=20)
        self.txt_phone.grid(column=3, row=Window.row_num)
        self.txt_phone.insert(0, self.phone)

        Window.row_num += 1


class Window():

    row_list = []
    row_num = 0

    def __init__(self, geometry='700x600'):

        self.window = tk.Tk()
        self.window.title('yes')
        self.window.geometry(geometry)

        self.first_frame = tk.Frame(self.window, width=550)
        self.first_frame.pack(fill=tk.Y, side=tk.LEFT)

        self.scr = tk.Scrollbar(self.first_frame)
        self.scr.pack(fill=tk.Y, side=tk.RIGHT)

        self.canvas = tk.Canvas(self.first_frame, yscrollcommand=self.scr.set)
        self.canvas.pack(side=tk.LEFT, fill=tk.BOTH, expand=1)

        self.scr.configure(command=self.canvas.yview)

        self.canvas.bind('<Configure>', lambda e: self.canvas.configure(
            scrollregion=self.canvas.bbox('all')))

        self.second_frame = tk.Frame()

        self.canvas.create_window(
            (0, 0), window=self.second_frame, anchor='nw')

        self.row_add_button = tk.Button(self.window, text='добавить строку', command=self.add_row)
        self.row_add_button.pack(side=tk.LEFT)

        for i in range(100):
            Window.row_list.append(Rows(self.second_frame))

    def add_row(self):
        Window.row_list.append(Rows(self.second_frame))


if __name__ == '__main__':
    window = Window()
    window.window.mainloop()

я пытался изменить функцию add_row() чтобы в ней перепривязывались scrollbar и canvas но результата не дало

def add_row(self):
    Window.row_list.append(Rows(self.second_frame))

    self.scr.configure(command=self.canvas.yview)
    self.canvas.configure(yscrollcommand=self.scr.set)

    self.canvas.bind('<Configure>', lambda e: self.canvas.configure(
        scrollregion=self.canvas.bbox('all')))
    

Ответы (0 шт):