【发布时间】:2021-11-18 06:15:14
【问题描述】:
在 youtube 和 google 上搜索了很多之后,我学会了如何在 Canvas 中添加全屏滚动条。它看起来像this。但现在我想在ttk.Notebook() 中添加这个框架/画布作为标签,就像这个test project。但是当我输入book.add(main,text='Tab 1') 时,它会显示这个错误_tkinter.TclError: can't add .!frame.!canvas.!frame as slave of .!notebook。谁能知道如何将画布显示为框架并将其作为选项卡添加到 notebook() 中??
这里是主要代码:
from tkinter import *
from tkinter import ttk
root=Tk()
root.title('Scroll Bar Test')
root.geometry('500x400')
#Create Main Frame
main_frame=Frame(root)
main_frame.pack(fill=BOTH,expand=1)
#Create Canvas to add scrollbar
my_canvas=Canvas(main_frame)
my_canvas.pack(side=LEFT,fill=BOTH,expand=1)
#Create ScrollBar
my_scrollbar=ttk.Scrollbar(main_frame,orient=VERTICAL,command=my_canvas.yview)
my_scrollbar.pack(side=RIGHT,fill=Y)
#Adding ScrollBar to Canvas
my_canvas.configure(yscrollcommand=my_scrollbar.set)
my_canvas.bind('<Configure>',lambda e: my_canvas.configure(scrollregion=my_canvas.bbox("all")))
#Creating Frame to show the Canvas
main=Frame(my_canvas)
#Showing Canvas into/as a Frame
my_canvas.create_window((0,0),window=main,anchor="nw")
for i in range(100):
Button(main, text=f'Button {1+i} Yoo!',font='arial 15').pack()
#Create NoteBook
book=ttk.Notebook(root)
book.pack()
#
book.add(main,text='Tab 1')
root.mainloop()
【问题讨论】:
标签: python tkinter canvas frame