首页 > 解决方案 > tkinter python中的滚动条问题

问题描述

我正在尝试使用 Tkinter 中的网格视图创建产品列表,但我对滚动条不起作用的原因感到非常困惑,我已经检查了很多教程来修复滚动条。

首先,我认为是因为 pack() 或 grid(),但是在使用 pack() 而不是 grid 之后,情况变得更糟,

请帮我解决这个问题

frame_main = Frame(root, bg="gray")
frame_main.pack(fill='both', expand=1)

my_canvas = Canvas(frame_main, bg="red")
my_canvas.pack(fill=Y, expand=1)

vsb = Scrollbar(frame_main, orient="vertical", command=my_canvas.yview)
vsb.pack(side='right', fill=Y)

my_canvas.configure(yscrollcommand=vsb.set)
my_canvas.bind('<Configure>', lambda e: my_canvas.configure(
    scrollregion=my_canvas.bbox("all")))

inner_frame = Frame(my_canvas).pack(fill=Y, expand=1)

my_canvas.create_window((0, 0), window=inner_frame, anchor="nw")

img = ImageTk.PhotoImage(Image.open(
    'images/apple--600.png').resize((200, 200), Image.ANTIALIAS))


for i in range(4):

    for j in range(3):
        label = Label(inner_frame, anchor="center", image=img, bg="green")
        label.grid(column=j, row=i)
        label_txt = Label(inner_frame, anchor="center",
                          text="item1 \n Price - $20.00", bg="white")
        label_txt.grid(column=j, row=i, sticky='WES')
        j += 1
    i += 2

标签: pythonlisttkinterscrollgrid

解决方案


推荐阅读