Python 创建自定义列表框-Tkinter

Python 创建自定义列表框-Tkinter,python,listbox,tkinter,Python,Listbox,Tkinter,我正在乱搞tkinter,我正在尝试创建一个自定义列表框。到目前为止,我的代码可以工作,但是我想为这个小部件设置一个不同的默认宽度,但是我不知道如何做。我现在返回的是这个错误: AttributeError:'ShelfListbox'对象没有属性“tk” 守则: from tkinter import * from TestData import * from Item import * from Shelf import ShelfListbox def create_item(lb):

我正在乱搞
tkinter
,我正在尝试创建一个自定义列表框。到目前为止,我的代码可以工作,但是我想为这个小部件设置一个不同的默认宽度,但是我不知道如何做。我现在返回的是这个错误:

AttributeError:'ShelfListbox'对象没有属性“tk”

守则:

from tkinter import *
from TestData import *
from Item import *
from Shelf import ShelfListbox

def create_item(lb):
    global item
    item = Item(sku_ent.get(), title_ent.get(), qty_ent.get())
    lb.insert(END, item.print_item())

root = Tk()
frame = Frame(root)

sku_lbl = Label(root, text="SKU: ").grid()
sku_ent = Entry(root)
sku_ent.grid(row=0, column=1)

title_lbl = Label(root, text="Title: ").grid(row=1, column=0)
title_ent = Entry(root)
title_ent.grid(row=1, column=1)

qty_lbl = Label(root, text="QTY: ").grid(row=2, column=0)
qty_ent = Entry(root)
qty_ent.grid(row=2, column=1)

item_list = ShelfListbox(root)
item_list.grid(row=0, rowspan=3, column=2)

for key in items:
    item_list.insert(END, items[key].print_item()) #ERROR COMES FROM THIS LINE

btn = Button(root, text="Confirm", command=lambda: create_item(item_list)).grid(row=3, columnspan=2)

root.mainloop()
搁置列表框代码:

from tkinter import *


class ShelfListbox(Listbox):
    def __init__(self, master):
        Listbox.__init__(master, width=60)

您需要将
self
作为第一个参数传递给
列表框。\uuuu init\uuuu
方法:

Listbox.__init__(self, master, width=60)

你能显示整个堆栈跟踪吗?没有足够的信息,我不相信错误来自你说的那行,因为那行可能会给你一个不同的错误。