我的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