基本上,我正在尝试将滚动条添加到包含小部件的窗口。我能够成功地将滚动条添加到Listbox
窗口小部件,并在插入内容后,程序按照我想要的方式工作。但是,当我将小部件放入Listbox
时,我遇到了问题。滚动条出现但似乎已禁用。
from tkinter import *
root = Tk()
root.geometry("640x480")
root.resizable(0,0)
myscrollbar = Scrollbar(root)
myscrollbar.pack(side=RIGHT, fill=Y)
mylist = Listbox(root, width=640, height=480, yscrollcommand=myscrollbar.set)
mylist.pack(fill=BOTH, expand=True)
for x in range(1, 101):
mylist.insert(END, Label(mylist, text="Label: "+str(x)).grid(row=x, column=0))
myscrollbar.config(command = mylist.yview)
root.mainloop()
任何修复此代码的方法?
答案 0 :(得分:0)
from tkinter import *
def myScrollcmd(event):
mycanvas.config(scrollregion=mycanvas.bbox('all'))
root = Tk()
mycanvas = Canvas(root)
mycanvas.pack(fill=BOTH, expand=True)
myFrame = Frame(mycanvas)
mycanvas.create_window((0, 0), window=myFrame, anchor=NW)
myScrollbar = Scrollbar(mycanvas, orient=VERTICAL, command=mycanvas.yview)
myScrollbar.pack(side=RIGHT, fill=Y)
mycanvas.config(yscrollcommand=myScrollbar.set)
mycanvas.bind("<Configure>", myScrollcmd)
for x in range(100):
Label(myFrame, text="Text "+str(x)).pack()
root.mainloop()
这很有效。但是,有一个问题可能不是主要问题。问题是,当我的光标在画布上,并且我移动鼠标滚轮时,滚动条不会移动。但是,当我的光标位于滚动条顶部时,滚动条会随着我的鼠标滚轮移动。我可以拖动滚动框上下滚动并使用滚动按钮上下滚动,但鼠标滚轮仅在我的光标悬停在滚动条小部件上时才有效。