tkinter Toplevel objext不可调用

时间:2015-04-30 00:14:25

标签: python windows tkinter toplevel

晚上好伙计们,我最近在使用tkinter窗户时遇到了麻烦。我有一个程序,用户可以在其中购买"来自商店的东西,在将想要的产品添加到购物车后,一个按钮将它们带到"最终"审查订单,他们可以删除他们不想要的项目,问题是,我需要销毁该窗口,显示信息窗口,说明"您不想要的项目有已从您的购物车中移除",并运行"最终预览"再次(使用新数据,没有不良项目的AKA)。问题是,在销毁窗口后,出现错误:

TypeError: 'Toplevel' object is not callable

我的代码结构是这样的:

def reviewwindow(*previous window*,cartlist):
    previuswindow.destroy()
    reviewwindow=Toplevel(gui)
    reviewwindow.title("cart review")
    reviewwindow.geometry("450x450")
    #code about the stuff I need to do#
    botonb= Button(reviewwindow, text = "Delete items",command=lambda:       deleteitems(reviewwindow,*previous window*,cartlist,delete), width=7)
botonb.grid(row=8,column=1)

def deleteitems(reviewwindow,*previous window*,cartlist,delete):
   reviewwindow.destroy()
   deleteitems=Toplevel(gui)
   deleteitems.title("delete")
   deleteitems.geometry("300x300")

#code##code#
boton= Button(deleteitems, text = "go back",command=lambda:reviewwindow(*previous window*,new_cartlist), width=9)
boton.grid(row=2,column=1)

我不知道我的问题是否清晰,我需要更多的解释或者我会乐意提供更多的解释。

1 个答案:

答案 0 :(得分:1)

问题是你有一个名为reviewwindow的函数,但是你将Toplevel(gui)分配给reviewwindow。同样适用于deleteitems。当您调用这些函数时,程序会尝试调用Toplevel对象,而这些对象不可调用。为每个唯一值选择唯一的名称。