Не прокручивается таблица treeview при попытке двигать мышью движок привязанного scrollbar'a. Прокрутка колёсиком мыши работает. Tkinter Python

уважаемые специалисты! Написал программу для работы с табличными данными. Суть вопроса следующая: на фрейме ("frame_table") размещена таблица treeview ("table"). Справа привязан скроллбар ("scroll_pane"). При заполнении таблицы данными, таблица прокручивается колесом мыши, при этом скроллбар тоже двигается и размер движка скролла соответствует области и заполнению таблицы. Но при попытке двигать мышью сам движок скролла, ничего не происходит, он стоит на месте, и таблица не прокручивается. Нажатие на стрелки в концах полосы прокрутки тоже ничего не дает. Привожу код привязки скролла:

scroll_pane = ttk.Scrollbar(frame_table, orient="vertical", command=table.yview()) 
scroll_pane.pack(side=RIGHT, fill='y')                                             
table.configure(yscrollcommand=scroll_pane.set)

Вроде бы всё по заветам, но работать не хочет. Подскажите, пожалуйста, в чём может быть причина. Заранее благодарю откликнувшихся.


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

Автор решения: Fox Fox

Вот пример использования виджета tkinter.ttk.Treeview с вертикальной полосой прокрутки. Прокрутка работает так, как и должно быть.

import tkinter as tk
from tkinter import ttk

# Создание основного окна
root = tk.Tk()
root.title("Treeview Example")

# Создание фрейма для размещения виджетов
frame = ttk.Frame(root)
frame.grid(row=0, column=0, padx=10, pady=10)

# Создание Treeview с одной колонкой
tree = ttk.Treeview(frame, columns=("Numbers"), show="headings")
tree.heading("Numbers", text="Numbers")
tree.grid(row=0, column=0, sticky="nsew")

# Добавление чисел от 1 до 100 в Treeview
for i in range(1, 101):
    tree.insert("", "end", values=(i,))

# Создание вертикального скроллбара и привязка его к Treeview
scrollbar = ttk.Scrollbar(frame, orient="vertical", command=tree.yview)
scrollbar.grid(row=0, column=1, sticky="ns")
tree.configure(yscrollcommand=scrollbar.set)

# Настройка растяжения строк и колонок фрейма для правильного отображения
frame.rowconfigure(0, weight=1)
frame.columnconfigure(0, weight=1)

# Запуск основного цикла обработки событий
root.mainloop()
→ Ссылка