[PySide] segfault related to NavigationToolbar when using PySide

TP paratribulations at free.fr
Mon Jul 9 22:13:07 CEST 2012


Hi,

Thanks a lot for your answer.
I have tried with PySide 1.1.1, and indeed it works perfectly.
I have also tried with PySide 1.0.9, and it works also! So this problem seems 
to appear only with PySide 1.1.0.

Regards,

TP


On Sunday, July 08, 2012 18:59:52 Lars Bittrich wrote:
> Hi,
> 
> for me it works flawlessly. However, I am using a newer version of
> PySide on Ubuntu 12.04 with the pyside-ppa builds.
> 
> Regards,
> 	Lars
> 
> In [1]: from PySide import QtCore
> 
> In [2]: QtCore.qVersion()
> Out[2]: '4.8.1'
> 
> In [3]: from PySide import __version__
> 
> In [4]: __version__
> Out[4]: '1.1.1'
> 
> In [5]: import matplotlib
> 
> In [6]: matplotlib.__version__
> Out[6]: '1.1.1rc'
> 
> 
> On Sat, 07 Jul 2012 11:34:55 +0200
> 
> TP <paratribulations at free.fr> wrote:
> > Hi everybody,
> > 
> > I have just posted a question on the Matplotlib mailing list:
> > 
> > http://sourceforge.net/mailarchive/forum.php?thread_name=4FF7A4D3.7060008%
> > 40hawaii.edu&forum_name=matplotlib- users
> > 
> > I obtain a segfault when using PySide, but not PyQt4. The answer obtained
> > on the Matplotlib mailing list seems to point to a possible bug in
> > PySide.
> > 
> > For convenience, I have copied the Python script below at the end of this
> > post.
> > 
> > To test with PyQt4, use:
> > $ python example.py
> > 
> > To test with PySide:
> > $ python example.py pyside
> > 
> > With PySide, a segmentation fault appears as soon as the mouse cursor is
> > hovering the plot area. Without the NavigationToolbar (try to comment the
> > corresponding lines), the problem does not appear. It may be related to
> > the
> > display of mouse coordinates in the NavigationToolbar, because when the
> > mouse is hovering the NavigationToolbar, no segfault appears.
> > 
> > These are the versions of Qt, PySide, and Matplotlib on my machine:
> > >>> from PySide import QtCore
> > >>> QtCore.qVersion()
> > 
> > '4.8.1'
> > 
> > >>> from PySide import __version__
> > >>> __version__
> > 
> > '1.1.0'
> > 
> > >>> import matplotlib
> > >>> matplotlib.__version__
> > 
> > '1.1.1rc'
> > 
> > Is this a bug in PySide? If yes, does any workaround exist?
> > 
> > Thanks in advance,
> > 
> > TP
> > 
> > ###########     example.py     ############
> > #!/usr/bin/env python
> > 
> > import sys
> > 
> > if len(sys.argv) >= 2 and sys.argv[1] == "pyside":
> >     from os import environ
> >     environ['QT_API'] = 'pyside'
> >     
> >     from PySide.QtCore import *
> >     from PySide.QtGui import *
> > 
> > else:
> >     from PyQt4.QtCore import *
> >     from PyQt4.QtGui import *
> > 
> > from matplotlib.figure import Figure
> > from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as
> > FigureCanvas
> > from matplotlib.backends.backend_qt4agg import NavigationToolbar2QTAgg
> > 
> > class MplCanvasXY( FigureCanvas ):
> >     def __init__( self, title = None, xlabel = None, ylabel = None,
> > 
> > parent=None ):
> >         self.fig = Figure()
> >         self.axes = self.fig.add_subplot(111)
> >         self.axes.grid(True)
> >         
> >         FigureCanvas.__init__( self, self.fig )
> >         self.setParent( parent )
> > 
> > app = QApplication( sys.argv )
> > d = QDialog()
> > 
> > vb = QVBoxLayout()
> > canvas = MplCanvasXY()
> > 
> > vb.addWidget( canvas )
> > navigationToolbar = NavigationToolbar2QTAgg(
> > 
> >         parent = canvas
> >         , canvas = canvas )
> > 
> > vb.addWidget( navigationToolbar )
> > d.setLayout( vb )
> > 
> > d.show()
> > sys.exit( app.exec_() )
> > ##############################




More information about the PySide mailing list