Я пытался скопировать и вставить код из furas (я искал что-то подобное): Вертикальная полоса прокрутки для кадра в Tkinter, Python
Этот код создает: - окно с tkinter - рамкой - и вертикальной полосой прокрутки
Единственная проблема заключается в том, что рамка не помещается в окно root. Не могли бы вы дать мне знать, как вставить рамку в главное окно с этим кодом (я немного изменил код ссылки, пожалуйста, найдите его ниже)?
сообщения об ошибках не генерируются, но если запустив его, вы увидите, что рамка не подходит к окну root
Спасибо за помощь
import tkinter as tk
from tkinter import *
def on_configure(event):
# update scrollregion after starting 'mainloop'
# when all widgets are in canvas
canvas.configure(scrollregion=canvas.bbox('all'))
root = tk.Tk()
root.geometry("1200x1000")
# --- create canvas with scrollbar ---
canvas = tk.Canvas(root)
canvas.pack(side=tk.LEFT)
scrollbar = tk.Scrollbar(root, command=canvas.yview)
scrollbar.pack(side=tk.LEFT, fill='y')
canvas.configure(yscrollcommand = scrollbar.set)
# update scrollregion after starting 'mainloop'
# when all widgets are in canvas
canvas.bind('<Configure>', on_configure)
# --- put frame in canvas ---
frame = tk.Frame(master=root, width=980, height=980)
canvas.create_window((0,0), window=frame, anchor='nw')
#frame.pack_propagate(0) #Don't allow the widgets inside to determine the frame's width / height
#frame.pack(fill=tk.BOTH, expand=True) #Expand the frame to fill the root window
# --- add widgets in frame ---
l = tk.Label(frame, text="Hello", font="-size 50")
l.pack()
l = tk.Label(frame, text="World", font="-size 50")
l.pack()
l = tk.Label(frame, text="Test text 1\nTest text 2\nTest text 3\nTest text 4\nTest text 5\nTest text 6\nTest text 7\nTest text 8\nTest text 9", font="-size 20")
l.pack()
# --- start program ---
root.mainloop()