Python 如何为线程调用的函数提供参数
这不起作用Python 如何为线程调用的函数提供参数,python,tkinter,Python,Tkinter,这不起作用 回溯(最近一次呼叫最后一次): 文件“C:\Users\Admin\AppData\Local\Programs\Python\Python38-32\lib\threading.py”,第932行,在\u bootstrap\u inner中 self.run() 文件“C:\Users\Admin\AppData\Local\Programs\Python38-32\lib\threading.py”,第870行,正在运行 自我目标(*自我参数,**自我参数) TypeError
回溯(最近一次呼叫最后一次):
文件“C:\Users\Admin\AppData\Local\Programs\Python\Python38-32\lib\threading.py”,第932行,在\u bootstrap\u inner中
self.run()
文件“C:\Users\Admin\AppData\Local\Programs\Python38-32\lib\threading.py”,第870行,正在运行
自我目标(*自我参数,**自我参数)
TypeError:*后面的count()参数必须是iterable,而不是int
试试这个:
将tkinter作为tk导入
导入时间
def count():
label=tk.label(赢,text=“完成5秒”)
label.grid(行=0,列=1)
def start():
#5秒=5000毫秒
赢后(5000,计数)
label=tk.label(win,text=“start”)
label.grid(行=1,列=1)
win=tk.tk()
win.geometry(“200x200”)
btn=tk.按钮(win,text=“hi”,command=start)
btn.网格(行=2,列=5)
win.mainloop()
我删除了线程,改为使用
win.after
。有关.after
方法的更多信息,请阅读将args=(5)
更改为args=(5,)
尝试args=(5,)
。如果您尝试从多个线程使用它,tkinter大多数时候都会崩溃。试着改用.after
。谢谢,但正如@thelizzard所说的(5,)worksLol那是我:D。我还说它可能会使tkinter崩溃(看第三条评论)哦,谢谢。我看不出来
import tkinter as tk
import threading
import time
def count(timeamt):
time.sleep(timeamt)
tk.Label(win, text='5 sec done').grid(row = 0, column = 1)
def start():
t1 = threading.Thread(target=count, args=(5))
t1.start()
# count(5)
tk.Label(win, text = 'started').grid(row = 1, column = 1)
win = tk.Tk()
win.geometry('200x200')
tk.Button(win, text = "hi", command = start).grid(row = 2, column = 5)
win.mainloop()