Hi,
I embedded Ryan’s examble for PyQt5-matplotlib use into my App but I get the following error:
/usr/local/lib/python3.4/dist-packages/mpl_toolkits/mplot3d/axes3d.py:1009: UserWarning: Axes3D.figure.canvas is ‘None’, mouse rotation disabled. Set canvas then call Axes3D.mouse_init().
warnings.warn(‘Axes3D.figure.canvas is ‘None’, mouse rotation disabled. Set canvas then call Axes3D.mouse_init().’)
From Stackoverflow, which host to question about this, I know that mouse actions are disabled when the canvas is re-initialized by whatever.
The only position I do such an operation is in here:
def addmpl(self, fig):
self.canvas = FigureCanvas(fig)
#FigureCanvas.init(self, fig)
#Axes3D.mouse_init(self)
self.mplvl.addWidget(self.canvas)
self.canvas.draw()
self.toolbar = NavigationToolbar(self.canvas, self.mplwindow, coordinates=True)
self.mplvl.addWidget(self.toolbar)
On of the Stackoverflow suggestion says, that re initializing FigureCanvas should do the trick but I’ll get:
Traceback (most recent call last):
File “./ex_0.1.py”, line 145, in
main(sys.argv)
File “./ex_0.1.py”, line 53, in main
mainwindow.addmpl(fig1)
File “./ex_0.1.py”, line 116, in addmpl
FigureCanvas.init(self, fig)
File “/usr/local/lib/python3.4/dist-packages/matplotlib/backends/backend_qt5agg.py”, line 181, in init
FigureCanvasQT.init(self, figure)
File “/usr/local/lib/python3.4/dist-packages/matplotlib/backends/backend_qt5.py”, line 237, in init
super(FigureCanvasQT, self).init(figure=figure)
TypeError: super(type, obj): obj must be an instance or subtype of type
as follow-up error message.
just using Axes3D.mouse_init() , as suggested by matplotlib itself, leads to:
Traceback (most recent call last):
File “./ex_0.1.py”, line 146, in
main(sys.argv)
File “./ex_0.1.py”, line 53, in main
mainwindow.addmpl(fig1)
File “./ex_0.1.py”, line 118, in addmpl
Axes3D.mouse_init()
TypeError: mouse_init() missing 1 required positional argument: ‘self’
adding self leads to:
Traceback (most recent call last):
File “./ex_0.1.py”, line 146, in
main(sys.argv)
File “./ex_0.1.py”, line 53, in main
mainwindow.addmpl(fig1)
File “./ex_0.1.py”, line 118, in addmpl
Axes3D.mouse_init(self)
File “/usr/local/lib/python3.4/dist-packages/mpl_toolkits/mplot3d/axes3d.py”, line 1002, in mouse_init
canv = self.figure.canvas
AttributeError: ‘Main’ object has no attribute ‘figure’
./ex_0.1.py &
Maybe I’m adding those lines at the wrong place, but I could fined anything useful in the matplotlib documantation, that would help me out, either.
Any thougts that might help?
Cheers,
Christian
···
–
“A little learning never caused anyone’s head to explode!”
“Ein wenig Lernen hat noch niemandens Kopf zum Explodieren gebracht!”