I have three frames; left_frame, middle_frame and right_frame. I would like to have no gap between left_frame and its scrollbar. How can I achieve it?
import tkinter as tk
from tkinter import ttk
def create_dummy_chart(frame, index):
# Create a dummy chart
label = tk.Label(frame, text=f"Chart {index}", width=10, height=2, relief="solid")
label.pack(side="top", pady=5)
# Create the main window
window = tk.Tk()
window.title("Chart Display")
window.geometry("800x300")
# Create the left frame
left_frame = tk.Frame(window, width=200, height=300, relief="solid", bd=1)
left_frame.pack(side="left", fill="y")
# Create a canvas to hold the left_frame and the scrollbar
canvas = tk.Canvas(left_frame, width=200, height=300)
canvas.pack(side="left", fill="y")
# Create the scrollbar
scrollbar = ttk.Scrollbar(left_frame, orient="vertical", command=canvas.yview)
scrollbar.pack(side="right", fill="y")
# Configure the canvas to use the scrollbar
canvas.configure(yscrollcommand=scrollbar.set)
canvas.bind("<Configure>", lambda e: canvas.configure(scrollregion=canvas.bbox("all")))
# Create a frame inside the canvas to hold the charts
chart_frame = tk.Frame(canvas)
# Add the frame to the canvas
canvas.create_window((0, 0), window=chart_frame, anchor="nw")
# Create dummy charts in the chart_frame
num_charts = 200
for i in range(num_charts):
create_dummy_chart(chart_frame, i)
# Update the canvas scrollable area
chart_frame.update_idletasks()
canvas.configure(scrollregion=canvas.bbox("all"))
# Create the middle frame
middle_frame = tk.Frame(window, width=200, height=300, relief="solid", bd=1)
middle_frame.pack(side="left", fill="y")
# Create the right frame
right_frame = tk.Frame(window, width=400, height=300, relief="solid", bd=1)
right_frame.pack(side="left", fill="both", expand=True)
# Run the Tkinter event loop
window.mainloop()
I have left_frame and vertical scrollabr. But, I ended up having a gap between them. I expect to have no gap between them. How can I achieve this?
source https://stackoverflow.com/questions/76382914/how-to-remove-gap-between-a-frame-and-its-scrollbar
Comments
Post a Comment