我有一个简单的ui由python tkinter编写,它只包含一个按钮。
我发现这里有一个问题,如果按钮命令指向一个函数,其中包括创建一个实例来执行它的方法。但是,当我运行这个程序时,我的pycharm告诉我,我正在将一个位置参数传递给该方法,我从未这样做过:
TypeError:tell_time()获取0个位置参数,但给出了1
出于某些原因,我必须保持方法在课堂上。谁能告诉我如何让方法运行?太感谢了!
def build_ui():
root = Tk()
root.title("Auto Hedger")
root.geometry("640x480")
btn1 = Button(root, text="get data", command=testing1)
btn1.pack()
root.mainloop()
class test_object():
def tell_time():
print(datetime.datetime.now())
def testing1():
aaa = test_object()
t1000 = Thread(target=aaa.tell_time, args=[])
t1000.start()
if __name__ == '__main__':
t_root = Thread(target=build_ui)
t_root.start()
你的tell_time
方法需要self
作为参数,因为它是一个类方法而不是函数。添加它应该使它工作正常。试试这个:
from threading import Thread
from tkinter import *
import datetime
def build_ui():
root = Tk()
root.title("Auto Hedger")
root.geometry("640x480")
btn1 = Button(root, text="get data", command=testing1)
btn1.pack()
root.mainloop()
class test_object():
def tell_time(self):
print(datetime.datetime.now())
def testing1():
aaa = test_object()
t1000 = Thread(target=aaa.tell_time, args=[])
t1000.start()
if __name__ == '__main__':
t_root = Thread(target=build_ui)
t_root.start()