Tkinter создать фрейм с вертикальной полосой прокрутки, которая подходит к главному окну root - python 3.7 - PullRequest
0 голосов
/ 07 февраля 2020

Я пытался скопировать и вставить код из 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()
...