У меня есть холст и полоса прокрутки на Tk.
У меня есть рамка на холсте.
Я добавляю в этот кадр новые кадры с виджетами на нем и хочу прокрутить эти виджеты.
Полоса прокрутки вообще не прокручивает виджеты, и когда я добавляю виджеты, которые находятся ниже окна, полоса прокрутки становится серой, и я вообще не могу ее использовать.
Я новичок в tkinter и python. Я просто еще не знаю, что я делаю. Я не пытался сделать это с классом (я должен?). Я пытался использовать ttk, и искал сайты не для ответов класса, но ни один из них не работал.
from tkinter import *
from tkinter.ttk import *
actor_number=0
global tk
def new_actor_button_command():
global menu_frame
global actor_number
global canvas
new_actor_frame=Frame(menu_frame,width=500,height=200)
new_actor_frame.grid(row=1+actor_number,column=0,pady=20)
actor_name_label=Label(new_actor_frame,text="Actor Name")
new_actor_frame.place(relx=0.0, rely=0.0, anchor=CENTER)
delete_actor_button=Button(new_actor_frame,text="Delete
Actor",command=delete_actor_button_command)
new_actor_frame.grid(row=1+actor_number,column=1)
actor_name_label.grid(row=2+actor_number,column=1)
delete_actor_button.grid(row=2+actor_number,column=2)
actor_number+=1
canvas.update_idletasks()
scrollbar.config(command=canvas.yview)
canvas.configure(scrollregion=canvas.bbox("all"))
def make_new_actor():
global canvas
global menu_frame
new_actor_button=Button(menu_frame,text="Add New
Actor",command=new_actor_button_command)
new_actor_button.grid(row=0,column=0)
def new_command():
global actor_number
actor_number=0
make_new_actor()
tk=Tk()
tk.geometry("1200x800")
menubar=Menu(tk)
filemenu=Menu(menubar,tearoff=0)
filemenu.config(font=("Verdana",16))
filemenu.add_command(label="New",font=("Verdana",16),command=new_command)
menubar.add_cascade(label="File", menu=filemenu)
global scrollbar
canvas=Canvas(tk,width=1000,height=1000)
scrollbar=Scrollbar(tk,orient="vertical",command = canvas.yview)
menu_frame=Frame(canvas,width=1000,height=1000)
canvas.create_window(0,0,window=menu_frame)
canvas.configure(yscrollcommand=scrollbar.set)
canvas.configure(scrollregion=canvas.bbox("all"))
canvas.place(relx=0.0, rely=0.0)
menu_frame.pack(side=LEFT,expand=True)
scrollbar.pack(side=RIGHT,fill=Y)
tk.config(menu=menubar)
tk.mainloop()
Следует прокрутить виджеты внутри "menu_frame".