我有一个使用PyQt4构建的GUI,我使用matplotlib(FigureCanvas)使用多个画布绘制几个图(这是故意的而不是使用子图)。对于每个画布我使用方法:
self.canvas_xx.mpl_connect('scroll_event', self.on_mouse_scroll)
其中xx表示画布的迭代,以获取执行某些操作的信号。我希望能够通过名称引用画布而不是使用:
ylabel = event.inaxes.axes.get_ylabel().split(' ')[0]
我使用更长的方法来引用每个图的ylabel名称。
我使用:dir(event)查看了event方法,并且有一个名为“canvas”的方法,但没有明显的方法来获取画布的名称。
有什么想法吗?
答案 0 :(得分:2)
我不太清楚你的名字是什么意思,但你可以通过
获得canvas
对象的引用
event_canvas = event.inaxes.axes.figure.canvas
并且canvas事件是可清除的,因此您可以将它们用作dict
other_thing = pre_populated_dict[event_canvas]
跟踪代码中给定画布的其他数据。
在python中,通常不是一种简洁的方法来获取对象的引用名称(可以这样做,但你不应该这样做。)