【问题标题】:Tkinter OOP updating widget in instance methodTkinter OOP 在实例方法中更新小部件
【发布时间】:2019-11-01 20:11:13
【问题描述】:

我的系统打印了一个客户订单队列的 GUI。订单完成后,工作人员按下完成,所有商品都应在 GUI 上移动,移除弹出的商品。

格式不正确,但在我空闲时缩进是正确的。我在按下 Comlete 按钮时收到此错误,不知道如何解决。我对 tkinter 和 OOP 的经验很少

File "C:\Users\stecd\Desktop\NEA - Copy\Order Queue.py", line 68, in orderFulfilled
    self.button = Label(master,text=item,width=30,height=5,bg="red")
NameError: name 'master' is not defined

代码:

class MyFirstGUI:
    def __init__(self, master):
        self.master = master
        master.title("A simple GUI")

        self.label = Label(master, text="This is our first GUI!")
        self.label.pack()

        self.completedButton = Button(master,text="Complete",width=30,height=5,bg="green")
        self.completedButton.pack(side=BOTTOM)
        self.completedButton.bind('<Button-1>', self.orderFulfilled)

        for item in customerQueue.queue:
            self.button = Label(master,text=item,width=30,height=5,bg="red")
            self.button.pack(side=LEFT)

    def orderFulfilled(self, event):
        customerQueue.dequeue()
        self.button.pack_forget()

        for item in customerQueue.queue:
            self.button = Label(master,text=item,width=30,height=5,bg="red")
            self.button.pack(side=LEFT)


root = Tk()
my_gui = MyFirstGUI(root)
root.mainloop()

【问题讨论】:

  • 你应该使用self.master

标签: python python-3.x oop tkinter


【解决方案1】:

quamranaa comment 中说

您应该使用self.master

这回答了我的问题。

【讨论】:

  • 这篇文章不是回答,而是更多的评论。
猜你喜欢
  • 1970-01-01
  • 2017-07-19
  • 1970-01-01
  • 2021-12-11
  • 2016-06-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-12
相关资源
最近更新 更多