我的Python程序有很多代码,所以我希望你很好,我给你代码的一部分问题是关于。我为Tkinter创建了一个线程,我试图访问此线程中的一个函数。这是什么样子:未绑定的方法x()必须用y实例作为第一个参数调用(改为int实例)
class GUI (threading.Thread):
def __init__(self, num):
threading.Thread.__init__(self)
def run(self):
window = Tk()
window.title('GUI')
window = Canvas(window, width=400, height=200)
window.pack()
def output(lampe, status):
if status == 0:
if lampe == 21:
window.create_oval(140, 30, 160, 10, fill="#FFA6A6")
if lampe == 20:
window.create_oval(170, 30, 190, 10, fill="#FAFAAA")
GUI.output(21,0)
这是我得到的消息:
TypeError: unbound method output() must be called with GUI instance as first argument (got int instance instead)
说实话,我不知道情况是什么,我不得不提及的第一个论点。
谢谢,那个人工作。但现在我得到另一个错误信息:'in output window.create_oval(140,30,160,10,fill =“#FFA6A6”) NameError:未定义全局名'window''。有没有办法从输出函数访问'窗口'? – lumpi
@lumpi你可以通过在'run'方法的开头添加'global window'来解决这个问题,但是你很可能会得到更多的错误。 – tynn
这是我第一次打算。令我惊讶的是,我没有得到任何其他的错误 - 我看到完全一样的错误。既不在'run'-方法也不在外面。 – lumpi