我在编写Python时再次遇到一些问题,希望寻求帮助。我继续构建“列表框”窗口小部件,但无法设置滚动条。我可以将滚动条放置在正确的位置,但是,上下滚动不起作用,并弹出一个错误,提示“ Object()不带参数”。有人可以建议如何解决吗?我附上以下代码以供参考。
import tkinter
from tkinter import *
def test():
root = tkinter.Tk()
lst = ['1', '2', ' 3', '4', '5', ' 6', '7', '8', ' 9', '10']
a = MovListbox(root, lst)
a.grid(row=0, column=0, columnspan=2, sticky=tkinter.N)
root.mainloop()
class MovListbox(tkinter.Listbox):
def __init__(self, master=None, inputlist=None):
super(MovListbox, self).__init__(master=master)
# Populate the news category onto the listbox
for item in inputlist:
self.insert(tkinter.END, item)
#set scrollbar
s = tkinter.Scrollbar(master, orient=VERTICAL, command=tkinter.YView)
self.configure(yscrollcommand=s.set)
s.grid(row=0, column=2, sticky=tkinter.N+tkinter.S)
if __name__ == '__main__':
test()
最佳答案
首先,您同时不需要import tkinter
和from tkinter import *
使用import
意味着您需要tkinter.'function'
来调用一个函数
来自tkinter
使用from
意味着您可以像在您的函数中一样调用该函数
开头没有tkinter.
的程序
使用*
意味着从tkinter获得所有功能
我也根据Rawig的答案修复了代码
import tkinter
def test():
root = tkinter.Tk()
lst = ['1', '2', ' 3', '4', '5', ' 6', '7', '8', ' 9', '10']
a = MovListbox(root, lst)
a.grid(row=0, column=0, columnspan=2, sticky=tkinter.N)
root.mainloop()
class MovListbox(tkinter.Listbox):
def __init__(self, master=None, inputlist=None):
super(MovListbox, self).__init__(master=master)
# Populate the news category onto the listbox
for item in inputlist:
self.insert(tkinter.END, item)
#set scrollbar
s = tkinter.Scrollbar(master, orient=VERTICAL, command=self.yview)
self.configure(yscrollcommand=s.set)
s.grid(row=0, column=2, sticky=tkinter.N+tkinter.S)
if __name__ == '__main__':
test()
关于python - tkinter.Listbox滚动条yview,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39084403/