【发布时间】:2018-11-28 21:12:19
【问题描述】:
我目前正在使用 tkinter 和线程在 python 3 中开发一个小项目,以便制作一个与用户输入一起实时运行的程序。更具体地说,问题是我无法让 tkinter gui 从单独的线程更新。我尝试了一些涉及 .set 方法、.update_idletasks 和从回调启动线程的方法,但我根本无法让它工作。下面是一个简短的尝试,它启动一个线程,在按下 gui 中的按钮后应该继续增加计数器。
from tkinter import *
import threading
var = 0
class thread1 (threading.Thread):
def __init__(self, threadID, name, counter):
threading.Thread.__init__(self)
self.threadID = threadID
self.name = name
self.counter = counter
def run(self):
while True:
global var
while True:
var+=1
window.update_idletasks()
examplethread = thread1(1, "example", 1)
window = Tk()
text = Label(window, text=var)
button = Button(window, text = "launch thread", command=examplethread.start)
text.pack()
button.pack()
window.mainloop
它不起作用,而是给我一个我知道的错误,说我不能在 mainloop() 正在运行的线程之外使用 tkinter 命令。我想知道是否可以更新 tkinter gui基于在同时输入其他玩家输入时在后台循环的代码的结果。
【问题讨论】:
标签: python python-3.x multithreading tkinter