我正在 gtk 中开发一个 matplotlib 应用程序,我想在 python 类中抽象与绘图相关的东西,但同时,我也希望能够通过击键与图形进行交互。我的类定义如下所示:
class Plot:
def __init__(self, data, datatype, xlabel=None, ylabel=None, xtics=None, ytics=None):
self.figure = Figure(figsize=(8,6), dpi=72)
self.axis = self.figure.add_subplot(111)
self.canvas = FigureCanvas(self.figure)
self.figure.canvas.mpl_connect('key_press_event', self.on_key)
def on_key(self, event):
print 'pressed'
我将绘图放在主窗口中:
x = numpy.linspace(0, 10, 100)
y = numpy.sin(x)
plot = Plot([x,y], 'line', 'xlabel', 'ylabel')
vbox.pack_start(plot.plotbox)
其中 vbox 只是一个 gtkbox。现在,绘图已正确显示,但我无法与之交互,即当我按下某个键时,我无法输入函数 on_key。有人可以指出缺少什么吗?
非常感谢,
v923z