Пользовательский прокручиваемый фрейм Tk прокручивается, когда окно не заполненоPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Пользовательский прокручиваемый фрейм Tk прокручивается, когда окно не заполнено

Сообщение Anonymous »

Я пытался создать прокручиваемый фрейм с помощью Tkinter/ttk, используя множество ответов здесь и разбросанные повсюду руководства. Фрейм предназначен для хранения таблицы, в которую можно добавлять и удалять строки. У меня возникла одна проблема, которую я не могу найти где-либо еще: если в фрейме есть место для большего содержимого, я могу прокрутить содержимое таблицы до нижней части фрейма. Когда кадр заполнен, он ведет себя так, как ожидалось.
Сейчас я не могу конвертировать в gif, поэтому добавил несколько снимков экрана, чтобы проиллюстрировать это.
Вот мой класс прокручиваемого фрейма, он довольно стандартен для примеров в Интернете;

Код: Выделить всё

class ScrollableFrame(ttk.Frame):

def __init__(self, parent):

super().__init__(parent)

self.canvas = tk.Canvas(self)
self.scrollbar = ttk.Scrollbar(self, orient="vertical", command=self.canvas.yview)
self.scrollableFrame = ttk.Frame(self.canvas)
self.canvas.configure(yscrollcommand=self.scrollbar.set)

self.scrollableFrame.bind("", lambda e: self.canvas.configure(scrollregion=self.canvas.bbox("all")))
self.bind("", self.bind_to_mousewheel)
self.bind("", self.unbind_from_mousewheel)

self.scrollbar.pack(side='right', fill='y')
self.canvas.pack(side='top', expand=0, fill='x')
self.canvas.create_window((0, 0), window=self.scrollableFrame)

def bind_to_mousewheel(self, event):
self.canvas.bind_all("", self.on_mousewheel)

def unbind_from_mousewheel(self, event):
self.canvas.unbind_all("")

def on_mousewheel(self, event):
self.canvas.yview_scroll(int(-1*(event.delta/120)), "units")
Строки таблицы добавляются в виджет ScrollableFrame.scrollableFrame родительским графическим интерфейсом, который, как я полагал, был необходим для запуска , привязанного к ScrollableFrame .canvas.
Есть ли у кого-нибудь предложения?
Прокрутка не требуется, поскольку рамка не заполнена
Изображение

Таблица все еще прокручивается
Изображение

Остановка прокрутки с виджетами строки в нижней части кадра
Изображение


Подробнее здесь: https://stackoverflow.com/questions/791 ... s-not-full
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»