任何人都可以告诉我什么是错误的去下面的代码?我尝试构建一个tkinker.listbox,可以使用.config命令更改维度,但失败。相反,它会产生“AttributeError:'MovListbox'对象没有属性'tk'”的错误。下面附上代码供您参考。python 3.5 tkinter.listbox更改大小
非常感谢。
import tkinter
def test():
root = tkinter.Tk()
list = [' 1','2',' 3','4','5',' 6','7','8',' 9','10']
a = MovListbox(root, list)
a._setup_style(200, 200, EXTENDED)
class MovListbox(tkinter.Listbox):
def __init__(self, master=None, inputlist=None):
# super(MovListbox, self).__init__()
global NewsClassify_catList
NewsClassify_catList = tkinter.Listbox(master)
NewsClassify_catList.grid(row = 0 , column = 0, columnspan=2, sticky=N)
'''populate the news category onto the listbox'''
for i in range (0, inputlist.__len__()):
NewsClassify_catList.insert(END, inputlist[i])
master.mainloop()
def _setup_style(self, height=100, width=100, mode=EXTENDED):
self.config(height=height, width=width, selectmode=mode)
if __name__ == '__main__':
test()
我对Tkinter并不十分熟悉,但我不认为你应该使用'_setup_style'方法。以下划线开头的属性通常不被视为public api的一部分,你知道'a._setup_style'在窗口关闭之前没有达到,因为你正在'MovListBox'构造函数中执行'master.mainloop()'? –
谢谢Raw的评论。很好的提醒你把主循环侧。我已经完成了这一工作,并在_setup_style(即setup_style)之前删除了下划线。但属性错误信息仍然显示。我想知道如果问题是关于如何告诉计算机找到配置的列表框,即self.config(height = height,width = width,selectmode = mode))任何人有想法吗? –
糟糕,我只是意识到'_setup_style'是你自己的功能,而不是Tkinter的功能。 –