Python 如何使tkinter GUI更快?

Python 如何使tkinter GUI更快?,python,tkinter,Python,Tkinter,各位, 我目前正在使用tkinter开发一个GUI,它由一个文本小部件组成,该小部件应该充当XML代码编辑器。我使用标记对某些关键字(如xml标记)进行颜色标记,但不幸的是,此操作非常缓慢,您可以看到gui线程需要花费大量时间来突出显示所有内容。有没有办法加快速度(例如,多个线程改变gui或类似的东西)?或者是否有一个GUI框架允许构建更具响应性的GUI?许多GUI工具包(包括tkinter)都不是线程安全的;因此,您不应该从多个线程发出GUI调用 如果你想知道为什么一个程序很慢,通常你必须分析

各位,

我目前正在使用tkinter开发一个GUI,它由一个文本小部件组成,该小部件应该充当XML代码编辑器。我使用标记对某些关键字(如xml标记)进行颜色标记,但不幸的是,此操作非常缓慢,您可以看到gui线程需要花费大量时间来突出显示所有内容。有没有办法加快速度(例如,多个线程改变gui或类似的东西)?或者是否有一个GUI框架允许构建更具响应性的GUI?

许多GUI工具包(包括
tkinter
)都不是线程安全的;因此,您不应该从多个线程发出GUI调用

如果你想知道为什么一个程序很慢,通常你必须分析它。探查器是一种工具,可以帮助您查看程序在何处花费时间。Python以
cProfile
模块的形式提供了一个内置的探查器。例如,要分析脚本,我将使用以下命令:

python3 -m cProfile -s cumulative unlock-excel.py ~/foo.xlsm | less
它还为
tkinter
程序生成输出,如:

在后一种情况下,
tkinter
调用将显示为例如
\uuu init\uuuuuuuuupy:1281(mainloop)
{method'call'of'\utkinter.tkapp'objects}


有了这个,你应该能够确定你的代码中是否存在慢度,或者它是否发生在
tkinter

嗨,请编辑你的帖子并添加你所做工作的实际代码。考虑一下文档的部分,我们不能优化我们看不到的代码。请将您的问题包括在内。请不要粘贴整个程序,请为这个问题专门创建一个示例。
python3 -m cProfile -s cumulative unlock-excel.pyw