在Windows 8.1和Linux Mint上使用Python3.4。
我有一个生成交互式matplotlib图的程序,使用.ion()调用来启用该行为。除此之外,它非常简单,实际上整个程序都在下面,只记下几个与数据相关的调用。
它适用于我的工作64位win8.1 i7x4 dell桌面。它适用于我的Mint17 32位AMD家用机器。它不适用于我的新工作64位win8.1 i3戴尔笔记本电脑。当我说它不起作用时,我的意思是GUI_inputs小部件被显示(所以tk和其他很多工作),可以编辑,将调试写入控制台,不生成任何错误消息,但matplotlib图形窗口没有出现,任务栏上没有窗口图标。在没有任何系统错误消息的情况下,如何找出丢失或配置错误的内容?
import tkinter as tki
import matplotlib.pyplot as plt
import GUI_input_widget as iw
class App(tki.Frame):
def __init__(self, parent):
tki.Frame.__init__(self, master=parent) # super calls do not appear to work with tk
self.inputs = iw.GUI_inputs(self, 'inputs', execute=self.update)
self.inputs.grid()
self.inputs.add('gr', 'graph range', '0, 2500', iw.float_pair)
# ... leave out a bunch of GUI_inputs stuff like the above
# ...
# create the graph
plt.ion()
self.fig = plt.figure(1)
self.ax = self.fig.add_subplot(111)
plt.draw()
def update(self):
f = self.inputs.get()
self.ax.clear()
x = f['x_data']
y = f['y_data']
self.ax.plot(x,y)
self.ax.annotate('annot {}'.format(f['x_data'][0]), xy=(f['x_data'][0], 1),
horizontalalignment='center', verticalalignment='bottom')
# ... leave out a bazillian low level graph calls like the above
# ...
# and finally reshow it
self.ax.set_xlim(f['gr'][0], f['gr'][1] )
self.ax.set_ylim(-8, 2)
plt.draw()
if __name__ == '__main__':
root = tki.Tk()
root.title('fancy user title')
app = App(root)
app.pack()
root.mainloop()