From: Eric F. <ef...@ha...> - 2012-07-07 02:54:46
|
On 2012/07/05 11:33 PM, TP wrote: > Hi everybody, > > The following is a small test yielding a segmentation fault with PySide, but > not with PyQt4. > > 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? If yes, does any workaround exist? Yes, it's a bug, but most likely in PySide. Mpl does not use any extension code specific to Qt. Eric > > 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_() ) > > ------------------------------------------------------------------------------ > Live Security Virtual Conference > Exclusive live event will cover all the ways today's security and > threat landscape has changed and how IT managers can respond. Discussions > will include endpoint security, mobile security and the latest in malware > threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ > _______________________________________________ > Matplotlib-users mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-users > |