Python 3.x 如何使tkinter画布仅按需更新?

Python 3.x 如何使tkinter画布仅按需更新?,python-3.x,tkinter,tkinter-canvas,Python 3.x,Tkinter,Tkinter Canvas,我正在用Python编写一个图形程序,我想知道如何仅按需更新画布;也就是说,停止画布更新事件循环的每次运行,而只在我告诉它时更新 我想这样做是因为在我的程序中,我有一个单独的线程,它从标准输入读取图形数据,以防止阻塞事件循环(因为Python中没有可靠的、可移植的轮询标准输入的方法,而且轮询很糟糕),但我希望屏幕只在一定时间间隔内更新,每当单独的线程开始读取输入时,就不会这样做。如果不暂停整个GUI,就不能暂停画布的更新 一个简单的解决方案是,在准备好更新之前不要绘制画布。不要调用canvas命

我正在用Python编写一个图形程序,我想知道如何仅按需更新画布;也就是说,停止画布更新事件循环的每次运行,而只在我告诉它时更新


我想这样做是因为在我的程序中,我有一个单独的线程,它从标准输入读取图形数据,以防止阻塞事件循环(因为Python中没有可靠的、可移植的轮询标准输入的方法,而且轮询很糟糕),但我希望屏幕只在一定时间间隔内更新,每当单独的线程开始读取输入时,就不会这样做。

如果不暂停整个GUI,就不能暂停画布的更新

一个简单的解决方案是,在准备好更新之前不要绘制画布。不要调用canvas命令,而是将这些命令推送到队列上。当您准备刷新显示时,迭代这些命令并运行它们


你也可以做你自己的双缓冲,你有两张画布。您正在积极绘制的图形将位于可见图形的后面。准备好显示结果后,交换画布的堆叠顺序

如果不暂停整个GUI,就不能暂停画布的更新

一个简单的解决方案是,在准备好更新之前不要绘制画布。不要调用canvas命令,而是将这些命令推送到队列上。当您准备刷新显示时,迭代这些命令并运行它们

你也可以做你自己的双缓冲,你有两张画布。您正在积极绘制的图形将位于可见图形的后面。准备好显示结果后,交换画布的堆叠顺序