我一直试图在Tkinter中添加垂直滚动条到标签框架,但我一直都在失败,它甚至可能吗? 我之前看到过有关此事的帖子,但这些帖子来自5年多以前,所以我想看看是否有变化。 我创建了一个按下按钮时添加新条目的函数,我想添加一个滚动条,以便我可以看到所有条目,以防有很多条目。 你能帮我解决这个问题吗?
这是错误:
AttributeError: 'LabelFrame' object has no attribute 'yview'
这是我的代码:
from tkinter import *
from tkinter import ttk
myApp = Tk()
myApp.title(" MY GUI")
myApp.geometry("1000x650")
frame1=LabelFrame(myApp,text="Activities",height=15)
frame1.grid(row=0,column=0,padx=5)
vertSB=ttk.Scrollbar(frame1,orient="vertical",command=frame1.yview)
vertSB.grid(row=2,rowspan=10,column=6,padx=5,sticky="NS")
frame1.configure(yscrollcommand=vertSB.set)
i=Label(frame1, text=" i ")
i.grid(row=0,column=1,pady=5)
Tasks=Label(frame1, text="Tasks")
Tasks.grid(row=0,column=2,pady=5)
Planned=Label(frame1, text="Planned")
Planned.grid(row=0,column=3,pady=5)
Real=Label(frame1, text="Real")
Real.grid(row=0,column=4,pady=5)
Prod=Label(frame1, text="Prod.")
Prod.grid(row=0,column=5,pady=5)
newrow=1
class AddNewTask(object):
rowlist=[]
def update_row_values(self):
for i,entry in enumerate(self.rowlist):
entry.delete(0, 'end')
entry.insert(0,i+1)
def addTask(self):
def delete():
bdelete.destroy()
iEntry.destroy()
taskEntry.destroy()
plannedEntry.destroy()
realEntry.destroy()
prodEntry.destroy()
self.rowlist.remove(iEntry)
self.update_row_values()
global newrow
newrow=newrow+1
bdelete=Button(frame1,text="-",command=delete)
bdelete.grid(row=newrow,column=0,sticky="E",padx=4)
iEntry=Entry(frame1,width=3)
self.rowlist.append(iEntry)
iEntry.grid(row=newrow,column=1,padx=1)
n = len(self.rowlist)
iEntry.insert(0,n)
taskEntry=Entry(frame1,width=55)
taskEntry.grid(row=newrow,column=2,padx=1)
plannedEntry=Entry(frame1,width=11)
plannedEntry.grid(row=newrow,column=3,padx=1)
realEntry=Entry(frame1,width=11)
realEntry.grid(row=newrow,column=4,padx=1)
prodEntry=Entry(frame1,width=11)
prodEntry.grid(row=newrow,column=5,padx=1)
def __init__(self):
buttonadd=Button(frame1,text="Add Task",command=self.addTask)
buttonadd.grid(row=0,column=0,padx=3,pady=5)
AddNewTask=AddNewTask()
myApp.mainloop()