In the application I'm building, I'm using Python 2.5 to place a toolbar
from Matplotlib 0.98.5.2 in a Qt 4 environment. Now I'd like to modify the
toolbar to suit our needs. So, I've done the following:
from PyQt4 import QtGui
from matplotlib.backends.backend_qt4 import NavigationToolbar2QT
from matplotlib.backend_bases import NavigationToolbar2
class Toolbar(NavigationToolbar2QT) :
def __init__(self , parent , canvas, coordinates=True) :
self.canvas = canvas
self.coordinates = coordinates
QtGui.QWidget.__init__( self, parent )
NavigationToolbar2.__init__( self, canvas )
I'd like to delete the configure subplots button, and add a new button in
it's place. However, I can't seem to find the configure subplots button, as
it is not listed in its method/object list. So, I had to use this crude
pushButtonCounter = -1
for child in self.children():
if str( type(child) ) == "<class 'PyQt4.QtGui.QToolButton'>":
pushButtonCounter += 1
if pushButtonCounter == 6:
configuresubplots_button = child
Also, Python 2.5 crashes when trying to do certain things with the button:
configuresubplots_button.deleteLater() # Crashes
# Ugh, I forgot what other kinds of operations make Python crash... I
think trying to connect and disconnect functions didn't go right... not
These things, however, do work (or at least don't make Python crash):
configuresubplots_button.setEnabled(False) # Works
configuresubplots_button.setHidden(True) # Does not work, but doesn't
cause a crash, either.
configuresubplots_button.setIcon(QtGui.QIcon('newicon.PNG')) # Works
configuresubplots_button.setToolTip('Another tool tip') # Works
self.new_fuction) # Works, though this should only be done after you
instantiate this class in your GUI. So, you have to loop again to find the
button to connect it.
So, in the end, I managed to change the configure_subplots button into the
button I want. However, such a method should not be necessary.
The question is whether I was doing something wrong, and if so, how I could
have done this differently?
My sincere thanks for your time and efforts!
View this message in context: http://www.nabble.com/Qt4-backend-question-tp24110367p24110367.html
Sent from the matplotlib - users mailing list archive at Nabble.com.