直到底部显示滚动条才能显示框架

时间:2019-08-26 16:11:19

标签: python tkinter scrollbar

我正在尝试为工具创建一个弹出帮助窗口。我设法将滚动条添加到包含画布和标签小部件的框架中。但是,该滚动条不显示我添加的img_canvas_3。

这是我的代码:

from tkinter import *
import tkinter.filedialog
from tkinter.filedialog import askopenfilename
from tkinter.filedialog import askdirectory
import PIL
from PIL import Image, ImageTk

help_window = tkinter.Tk()

help_window.title("Help")
help_window.geometry("400x800")

#frame.grid(row=0,column=0)
canvas=Canvas(help_window,bg='red',width=300,height=800,scrollregion=(0,0,500,500))
scroll_y = Scrollbar(help_window, orient="vertical", command = canvas.yview)
frame=Frame(canvas,width=300,height=800, bg="green")
description_label = Label(frame, text = "\n\tMy Tool\n",anchor = "w").pack(side = TOP, fill = "both")

introduction = "This tool provides a basic workflow"   
introduction_text = Label(frame, text = introduction, anchor = "w", font = "Verdana 10", bg="yellow").pack(fill = "both")

label_1 = Label(frame, text = "Input Data 1", anchor = "w", font = "Verdana 10", justify=CENTER).pack(fill = "both")

img_canvas_1 = Canvas(frame, bg = "black", height = 300, width = 300)
img_canvas_1.pack(side = TOP)

label_2 = Label(frame, text = "Input Data 2", anchor = "w", font = "Verdana 10", justify = CENTER).pack(fill = "both")

img_canvas_2 = Canvas(frame, bg = "black", height = 300, width = 300)
img_canvas_2.pack(side = TOP)

label_3 = Label(frame, text = "Input Data 3", anchor = "w", font = "Verdana 10", justify = CENTER).pack(fill = "both")
img_canvas_3 = Canvas(frame, bg = "black", height = 300, width = 300)
img_canvas_3.pack(side = TOP)

canvas.create_window(0, 0, anchor = 'nw', window = frame)
canvas.update_idletasks
canvas.configure(scrollregion=canvas.bbox('all'),
                            yscrollcommand = scroll_y.set)
canvas.pack(fill = 'both', expand = TRUE, side = 'left')
scroll_y.pack(fill = 'y', side = 'right')

help_window.mainloop()

我希望滚动条能够正常工作,随着我添加的越来越多,基本上显示了框架中的所有小部件和元素。这仅适用于直到img_canvas_2

有人知道为什么我的代码不是这种情况吗?我尝试了一下canvas变量中的scrollregion参数,但是它不起作用。

谢谢。

0 个答案:

没有答案