小编Chr*_*ook的帖子

在Qt4中以编程方式更改matplotlib工具栏模式

我正在使用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)

pyqt matplotlib toolbar

2
推荐指数
1
解决办法
3001
查看次数

标签 统计

matplotlib ×1

pyqt ×1

toolbar ×1