Python tkinter, горизонтальная полоса прокрутки в дереве не работаетPython

Программы на Python
Anonymous
 Python tkinter, горизонтальная полоса прокрутки в дереве не работает

Сообщение Anonymous »

Добрый день!
Я использую Python tkinter, panda и TreeView.
Древовидное представление предназначено для отображения файла Excel через диалоговое окно файла с 15 столбцами, что очень длинно, поэтому мне нужна горизонтальная полоса прокрутки.
Однако полоса прокрутки не работает. Древовидное представление охватывает данные Excel из окна.
Я искал и пробовал много вещей, но, похоже, это не работает.

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

# Create Excel_Frame for TreeView Excelsheet
Excel_Frame = ttk.Frame(Body_Frame)
Excel_Frame.grid(row=0, column=1)

treeScroll_x = ttk.Scrollbar(Excel_Frame, orient="horizontal")
treeScroll_y = ttk.Scrollbar(Excel_Frame, orient="vertical")

treeScroll_x.pack(side="bottom", fill="x")
treeScroll_y.pack(side="right", fill="y")

treeview = ttk.Treeview(Excel_Frame, show="headings", xscrollcommand=treeScroll_x.set, yscrollcommand=treeScroll_y.set,
height=30)

treeview.pack(side="left", fill="both", expand=True)

treeScroll_x.config(command=treeview.xview)
treeScroll_y.config(command=treeview.yview)

Excel_Frame.grid_columnconfigure(0, weight=1)
Excel_Frame.grid_rowconfigure(0, weight=1)

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

# Function to load data from Excel to Treeview
def load_data_func():
global filepath
# Clear existing data in Treeview
for item in treeview.get_children():
treeview.delete(item)

# Read Excel File
print("filepath = ", filepath)
selected_sheet = "2020"                             # Testing specific sheet
excel_file = pd.read_excel(filepath, sheet_name=selected_sheet)

# Set Treeview Header
treeview["columns"] = list(excel_file.columns)
#treeview["show"] = "headings"                       # Hide the default first column
for col in excel_file.columns:
treeview.heading(col, text=col)
treeview.column(col, width=100, minwidth=150, stretch=False)

# Insert data rows to Treeview
for index, row in excel_file.iterrows():
treeview.insert("", "end", values=list(row))
Это перед загрузкой файла Excel
Изображение

И это после загрузки файла
Изображение
.
Это иерархия фреймов (если она предусмотрена), Treeview находится в Excel_Frame

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

root
Main_Frame
Load_Frame
Info_Frame
Body_Frame
Entry_Frame
Button_Frame
Excel_Frame
P.S. Пожалуйста, не обращайте внимания на уродливый интерфейс. В первую очередь я концентрируюсь на функциональности.
Буду признателен, если вы укажите, чего мне не хватает.

Подробнее здесь: https://stackoverflow.com/questions/797 ... ot-working

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