【发布时间】:2012-04-05 02:17:51
【问题描述】:
我对 python 很陌生,但我上周一直在尝试编写一个软件来可视化一些复杂的东西。
基本的过场动画是:用户将所需的所有信息输入到 GUI 中,然后单击继续,我还有另一个重要的功能来生成所有图形。
这是可行的,但问题是当我运行该函数时,它持续了大约 2 分钟,tkinter 窗口冻结了。我读到我应该使用线程。 然后我发现了这个:http://uucode.com/texts/pylongopgui/pyguiapp.html 这是一个基本上可以做我想做的事情以及其他一些事情的例子。
我现在正在尝试调整我的代码以使其适合这个。
这是我的问题:一切似乎都运行良好,只是在我的函数中有一个名为“tk”的新窗口弹出并且所有内容都冻结了。
一切都在这一刻凝固:
# On trace les fils de chaine
for i in range(0, Couches_Trame + 1):
t = np.arange(0, np.pi, 0.1)
plt.figure(i)
plt.title('Plan de Trame ' + str(i+1), fontsize = '16')
ax = plt.gca()
ax.yaxis.set_visible(False)
ax.xaxis.set_visible(False)
plt.axis([-1, Plans, Fils_Chaine + 1, -1])
for j in range(0,Plans):
for k in range(0,Fils_Chaine):
plt.fill_between(np.cos(t)/8+j, np.sin(t+np.pi)/8+k+0.5, \
np.sin(t)/8+k+0.5, color='r')
plt.savefig('Blabla'+int(i))
plt.figure(Couches_Trame)
plt.title('Plan de Trame: Projection')
当我不使用 Tkinter 直接运行它时,一切正常,所以我不知道是什么原因造成的。
我也试过用无限循环替换这段代码:
i=1
while i > 0:
i=i+1
print(i)
这行得通,没有什么是冻结的。但后来我尝试了这个:
i=1
while i > 0:
i=i+1
plt.plot((i,i))
然后一切都冻结了,名为“tk”的窗口弹出并立即冻结。
我在某处读到这可能是 Tkinter 和 matplotlib 后端之间的冲突,但仅此而已,这对我没有多大帮助。
编辑:我不知道这是否有帮助,但我使用的是 Python Portble 2.7.2.1
【问题讨论】:
标签: python matplotlib tkinter