Задать вопрос
@Durilka96

Как добавить scrollbar к динамическим фреймам?

подскажите как организовать правильное подключение scrollbar. Я создаю свой класс, который в окне tkinter динамически создает frame в виде строк, когда строк становится много они уходят за пределы экрана, к чему мне подключить scrollbar?61df39a46c921733160019.png
class MyTableRow(Frame):
    def __init__(self, master, *args, **kwargs):
        super().__init__(master, *args, **kwargs)
        self.widgets = []
        self.frames=[]
        for i in range(3):
            widget = Entry(self)
            widget.pack(side="left")
            self.widgets.append(widget)
        self.update_btn = Button(self, text="Добавить", command=self.update_clicked)
        self.update_btn.pack(side="right")
        self.delete_btn = Button(self, text="Удалить", command=self.delete_clicked)
        self.delete_btn.pack(side="right")


    def update_clicked(self):
        print(self.widgets[0].get())

    def delete_clicked(self):
        print("whatever")

def dinamic_form():
    global widgets
    global frames
    doth=tix.Tk()
    scroll_doth = Scrollbar(doth, orient=VERTICAL)
    scroll_doth.pack(side="right")
    frames = []
    widgets = []
    for i in range(10):
        frame = MyTableRow(doth, borderwidth=2, relief="groove")
        frames.append(frame)
        frame.pack(side="top", fill="x")
  • Вопрос задан
  • 217 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
Viktor_T2
@Viktor_T2
python developer
Через Canvas
frame засунь в Canvas, а к Canvas-у привязываешь скролбары.
Ну или сразу виджеты в Canvas без frame-а ( Canvas вместо frame-а )
https://pythonru.com/uroki/sozdanie-skrollbarov-tk...
https://ru.stackoverflow.com/questions/1333158/%D0...
Обьяснение:
"Лишь несколько классов виджетов Tkinter поддерживают стандартные параметры скроллинга: Listbox, Text и Canvas поддерживают xscrollcommand и yscrollcommand,
а Entry — только xscrollcommand."
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы