我在PyQt4 UI中嵌入了matplotlib图形。像Matplotlib - 导航工具栏快捷键不起作用
Building a matplotlib GUI with Qt Designer.
FigureCanvasQTAgg和NavigationToolbar2QT东西QVBoxlayout加入和用户界面的右侧是图名的QListWidget。
没有一个工具栏快捷方式正在工作。我试着改变QVBoxlayout和QListWidget Widget的焦点。作为
from matplotlib.figure import Figure
fig=figure()
ax=fig.add_subplot(111)
ax.plot.plot(np.random.rand(5))
这个数字被传递到addmpl其中画布和工具栏被生成并添加到主窗口小部件的方法产生
图。
def addmpl(self,fig):
self.canvas = FigureCanvas(fig)
self.mplvl.addWidget(self.canvas)
self.canvas.draw()
self.toolbar = NavigationToolbar(self.canvas,self.mplwindow)
self.mplvl.addWidget(self.toolbar)
解决办法...
def menu(self):
self.savefig=QtGui.QAction('&Save', self)
self.savefig.setShortcut('Ctrl+S')
self.savefig.triggered.connect(self.save_figure)
undo=QtGui.QAction('&Undo', self)
undo.setShortcut('Ctrl+Z')
undo.triggered.connect(self.back)
redo=QtGui.QAction('&Redo', self)
redo.setShortcut('Ctrl+Y')
redo.triggered.connect(self.forward)
figoptions=QtGui.QAction('&Figure Options', self)
figoptions.setShortcut('Ctrl+F')
figoptions.setStatusTip('Edit curves lines and axes parameters')
figoptions.triggered.connect(self.edit_parameters)
def back(self):
self.toolbar.back()
def forward(self):
self.toolbar.forward()
def save_figure(self):
self.toolbar.save_figure()
def edit_parameters(self):
self.toolbar.edit_parameters()
但像约束的快捷键平移/缩放X轴 - 平移时按住X /鼠标缩放看起来困难和繁琐的实现。这Question的
解决方案有同样的问题。(NavigationToolbar2QTAgg与NavigationToolbar2QT代替)
插槽是否被调用?也就是说,如果你把打印语句放在后面()向前()等你有什么在控制台从哪个GUI启动?如果没有,那么问题可能与如何集成工具栏相关,而不是实际的qactions,在这种情况下,您需要发布相关的代码。 – Schollii
我在backend_bases.py的pan方法中放置了print(“Hello”)。按下p(快捷键用于平移)控制台保持空白。但是如果我点击工具栏中的平移按钮,控制台会打印出你好 – inxp
示例代码可用[这里](http://blog.rcnelson.com/wp-content/uploads/2015/02/mpldesigner.zip) – inxp