如何让tkinter滚动条工作(灰色)



我正在创建一个简单的tkinter应用程序。当用户按下按钮时,图像就会出现。如果他们再次按下它,另一个图像出现等等。所以我想要一个滚动条,以便用户可以滚动到出现在页面上的图像。我不知道我做错了什么,但滚动条是灰色的,不工作。

import calendar
import tkinter as tk
from tkinter import ttk

root = tk.Tk()
root.geometry('800x800')

x = 30
y = 30
box_image = tk.PhotoImage(file='apple.png')

### SCROLL BAR ###
# create a main frame
main_frame = tk.Frame(root)
main_frame.pack(fill='both', expand=1)
# create a canvas
my_canvas = tk.Canvas(main_frame)
my_canvas.pack(side='left', fill='both', expand=1)
# add a scrollbar to the canvas
my_scrollbar = ttk.Scrollbar(main_frame, orient='vertical', command=my_canvas.yview)
my_scrollbar.pack(side='right', fill='y')
# configure the canvas
my_canvas.configure(yscrollcommand=my_scrollbar.set)
my_canvas.bind('<Configure>', lambda e: my_canvas.configure(scrollregion = my_canvas.bbox("all")))
# create Another frame inside the canvas
second_frame = tk.Frame(my_canvas)
# add that new frame to a window in the canvas
my_canvas.create_window((0,0), window=second_frame, anchor="nw", width="10000")
def display():
global x , y
panel2 = tk.Label(main_frame, image=box_image, bg='#f7f6f6')
panel2.place(x=x, y=y) 
x = x
y = y+200

button = tk.Button(second_frame, text="click me", command=display)
button.place(x=0, y=0)
label = tk.Label(second_frame, text="label", bg="blue")
label.pack(fill="x", padx=50)
new_frame = tk.Frame(second_frame, bg='black', height=110)
new_frame.pack(fill="x")
root.mainloop()

你需要把图片放在second_frame,而不是main_frame