Vor kurzem begann ich zu entwickeln Entwicklungs UI in Qt Designer und bearbeiten sie durch PyQt. Die Dinge sind ziemlich smoothy gegangen, aber ich bin gerade dabei, das folgende Problem zu lösen:Matplotlib Navigation Toolbar: entfernen "Bearbeiten Kurven Linien und Achsen Parameter"
Ich habe ein MatplotLib-Widget durch Qt Designer eingefügt und es geschafft, ziemlich gut horizontale Balken mit Barh zu plotten. Als nächstes habe ich versucht und erfolgreich geschafft, eine funktionale NavigationToolBar durch matplotlib.backends.backend_qt4agg.NavigationToolbar2QT
einzufügen Dann folgte ich diesem Thread (und ähnliche) Ich habe es geschafft zu bearbeiten, welche Schaltflächen ich möchte in der Symbolleiste angezeigt werden ... How to modify the navigation toolbar easily in a matplotlib figure window?
Es funktioniert gut für jede Schaltfläche außer für die letzte, mit einem Kontrollkästchen die Beschreibung "Kurvenlinien und Achsenparameter bearbeiten". In diesem speziellen Fall möchte ich diese Schaltfläche wirklich entfernen, da sie beim Bewegen der Maus die Größe ständig ändert und in diesem Fall brauche ich diese Schaltfläche nicht.
Ich habe noch keinen Thread diskutieren diese besondere Symbolleiste auf die Schaltfläche (nur diese eine matplotlib: Qt4Agg toolbar's irritating bug)
Der verwendete Code einzufügen, um die Symbolleiste und zur Zeit Editierbuttons sieht ungefähr so gefunden:
from matplotlib.backends.backend_qt4agg import NavigationToolbar2QT
class currentUI(QtGui.QWidget):
def __init__(self):
super(currentUI,self).__init__()
(...)
uic.loadUi('portfolioManager.ui',self)
self.initUI()
(...)
def initUI(self):
self.setWidgetsPropertiesAndActions()
(...)
def setWidgetsPropertiesAndActions(self):
(...)
self.navi_toolbar=NavigationToolbar(self.mplwidgetExposures, self)
self.LayoutPlot.addWidget(self.navi_toolbar)
(...)
class NavigationToolbar(NavigationToolbar2QT):
toolitems = [t for t in NavigationToolbar2QT.toolitems if
t[0] in ('Home','Pan', 'Zoom', 'Save','Subplots')]
Dies bettet die Symbolleiste erfolgreich ein, aber die Schaltfläche "Bearbeiten" bleibt erhalten.
Vielen Dank für einen Einblick. Grüße
Vielen Dank für Ihre Erkenntnisse! Ihrer Idee folgend habe ich eine Funktion in der NavigationToolbar-Unterklasse zum Entfernen von Aktionen generiert und hervorragend funktioniert. Prost! –