私は 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