我一直在试图把滚动条里面Canvas
有一个LabelFrame
,只是一些Button
在它里面,但我不能似乎使滚动条作品。
有可能不使用类,因为我还是编程新手。
这里的代码:
def all_alb():
global allAlbum
global all_albwin
global lg
all_albwin = Toplevel()
all_albwin.state('zoomed')
ctr = 0
alb_row = 0
alb_cover = PhotoImage(file="img/placeholder.gif")
scrollbar = Scrollbar(all_albwin)
scrollbar.pack(side=RIGHT, fill=Y)
container = Canvas(all_albwin, yscrollcommand=scrollbar.set, scrollregion=(0,0,1000,1000))
# I do nothing scrollbar-related here
if lg == 1:
btnAdd = Button(container, text="Add New Album", command=add_alb)
btnAdd.grid(row=0)
btnMain = Button(container, text="Back to Main Menu", command=all_albwin.destroy)
btnMain.grid(row=1)
all_frame = LabelFrame(container, text="All Album", padx=10, pady=10)
all_frame.grid(padx=15, pady=15, row=2)
file = open("album/allAlbum.txt", "r")
total = file.readline()
file.close()
if int(total) == 0:
status = Label(all_frame, text="No album found.")
status.grid(row=0)
else:
while ctr < int(total):
file = open("album/alb_info/" + allAlbum[ctr].replace("\n", "") + ".txt", "r")
coverDir = file.readline().replace("\n", "")
coverImg = PhotoImage(file=coverDir)
cover = Button(all_frame, image=coverImg, bd=0, command=lambda ctr=ctr: alb_info(ctr, "all_alb"))
cover.image = coverImg
cover.grid(row=alb_row, column=0, pady=20)
alb_name = Button(all_frame, text=allAlbum[ctr].replace("\n", ""), font = "Helvetica 16 bold", command=lambda ctr=ctr: alb_info(ctr, "all_alb"), bd=0)
alb_name.grid(row=alb_row, column=1, sticky=NW, padx=20, pady=20)
ctr = ctr + 1
alb_row = alb_row + 1
# Scrollbar stuff under here
container.pack(expand=True)
scrollbar.config(command=container.yview)
您无法使用滚动滚动添加到画布的对象grid
。您必须用于create_window
将labelframe放置在画布内。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句