Python Tkinter更新功能冻结了主要功能

问题描述

我有一个带有python API的Windows应用程序(支持python 3)。您可以提供具有主要功能的类。在程序启动时,将创建此类的实例,并定期调用main函数。我可以配置频率,但是没有别的。 (我无法更改API的工作方式)

现在,我想将tkinter用于某些可视化效果,图表等。这是我当前的类结构的示例:

import tkinter as tk

class Script:

    def __init__(self):
        self.root = tk.Tk()
        self.count = 0
    
    def main(self):
        # do some stuff
        print(str(self.count))
        self.count += 1
        
        # update gui
        self.root.update()

# This is to simulate the software behavior.

import time

scriptInstance = Script()

for i in range(0,20 * 10):
    scriptInstance.main()
    time.sleep(0.1)

我遇到的主要问题是,只要您与Tkinter交互,root.update()方法就会冻结main函数。您可以在上面的示例中看到,只要您移动窗口,该数字就不会递增。有办法防止这种情况吗?

我试图通过另一个线程调用root.update(),该线程不起作用,因为Tkinter不允许这样做。

谢谢您的帮助。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)