有没有办法从一个不是主循环的线程请求在Tkinter主循环上调用一个函数?

时间:2012-02-26 21:08:36

标签: python multithreading tkinter

我有一个接收串行数据的程序,并使用matplotlib使用Tkinter对其进行图形化。我目前正在使用它,但是我必须使用.after()函数来轮询队列中的数据。在我过去使用的其他UI框架中(C中的不同项目),有一种方法要求UI框架调用从mainloop给它的函数(在一段时间后,在空闲期间等) 。如果我尝试在不是主循环的线程上使用.after(),它就不起作用并向我抱怨。

有没有办法在mainloop上调用用户提供的函数,该函数是在不是mainloop的线程上提供的?或者,有没有办法指示mainloop唤醒并在Queue获取某些数据时做一些工作?

感谢。

1 个答案:

答案 0 :(得分:1)

我听说你可以从非GUI线程中调用event_generate。如果您致电event_generate,我们已经知道您应该将tail的值提供给when参数。

我个人只在一个项目中完成了这项工作,但似乎工作正常。