我正在使用matplotlib版本1.2.1,Qt4.7,python 2.7构建应用程序.
我想修改matplotlib工具栏以添加另一个可检查按钮,该按钮设置用于选择数据点以响应拾取事件的模式.它几乎都可以工作,除了选择缩放或平移导航按钮时不发送拾取事件.
我正在寻找的是一种以编程方式关闭平移和缩放模式的方法.我想我可以通过将工具栏平移和缩放按钮的选中状态设置为False来完成此操作.这似乎有效(例如,如果选中缩放按钮,设置为false会使其显示为未选中).但是它不会更改画布的模式 - 光标仍然是缩放光标,并且拾取事件不会触发.
以下代码演示了这一点:
import sys, os, math
from PyQt4.QtCore import *
from PyQt4.QtGui import *
import matplotlib
from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg
from matplotlib.backends.backend_qt4agg import NavigationToolbar2QTAgg
from matplotlib.figure import Figure
class NavigationToolbar( NavigationToolbar2QTAgg ):
picked=pyqtSignal(int,name='picked')
def __init__(self, canvas, parent ):
NavigationToolbar2QTAgg.__init__(self,canvas,parent)
self.clearButtons=[]
# Search through existing buttons
# next use for placement of custom button
next=None
for c in self.findChildren(QToolButton):
if next is None:
next=c
# Don't want to see subplots and customize
if str(c.text()) in ('Subplots','Customize'): …Run Code Online (Sandbox Code Playgroud)