我正在写一个需要循环的Tkinter程序。我无法从Tkinter所在的同一个类运行循环,我相当肯定。为了运行所述循环,我相信我必须使用一个单独的线程,因此是一个单独的类,以防止Tkinter冻结。我已经让Tkinter运行,而线程中的循环打印数字。但是,我需要让它配置一个驻留在另一个类中的Tkinter窗口。我该怎么做呢?
答案 0 :(得分:0)
您不一定需要另一个线程,因为您不一定需要创建循环(请参阅my answer to your other question about using a nested loop)。
但是,要回答您的具体问题,您必须实现一个队列。工作线程将在队列上放置某种消息,主线程通过事件循环轮询队列并响应消息。这是必要的,因为工作线程不能直接修改tk小部件。
有关在Tkinter中使用线程和队列的示例,请参阅effbot.orb上的Tkinter and Threads。密切关注它如何使用after
每100毫秒轮询一次队列。