8000 converted import-critical PyQt calls to new style so that it will · matplotlib/matplotlib@7ddc5ee · GitHub
[go: up one dir, main page]

Skip to content

Commit 7ddc5ee

Browse files
committed
converted import-critical PyQt calls to new style so that it will
not seg-fault when using PySide Addresses issue #2378
1 parent b5add85 commit 7ddc5ee

File tree

2 files changed

+29
-51
lines changed

2 files changed

+29
-51
lines changed

lib/matplotlib/backends/backend_qt4.py

Lines changed: 16 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -82,9 +82,8 @@ def _create_qApp():
8282
if display is None or not re.search(':\d', display):
8383
raise RuntimeError('Invalid DISPLAY variable')
8484

85-
qApp = QtGui.QApplication([" "])
86-
QtCore.QObject.connect(qApp, QtCore.SIGNAL("lastWindowClosed()"),
87-
qApp, QtCore.SLOT("quit()"))
85+
qApp = QtGui.QApplication([" "]) # probably fine, not used by QT to resolve anything
86+
qApp.lastWindowClosed.connect(qApp.quit)
8887
else:
8988
qApp = app
9089

@@ -469,8 +468,7 @@ def __init__(self, canvas, num):
469468
self.toolbar = self._get_toolbar(self.canvas, self.window)
470469
if self.toolbar is not None:
471470
self.window.addToolBar(self.toolbar)
472-
QtCore.QObject.connect(self.toolbar, QtCore.SIGNAL("message"),
473-
self._show_message)
471+
self.toolbar.message.connect(self._show_message)
474472
tbs_height = self.toolbar.sizeHint().height()
475473
else:
476474
tbs_height = 0
@@ -556,6 +554,8 @@ def set_window_title(self, title):
556554

557555

558556
class NavigationToolbar2QT(NavigationToolbar2, QtGui.QToolBar):
557+
message = QtCore.Signal(str)
558+
559559
def __init__(self, canvas, parent, coordinates=True):
560560
""" coordinates: should we show the coordinates on the right? """
561561
self.canvas = canvas
@@ -656,7 +656,7 @@ def dynamic_update(self):
656656
self.canvas.draw()
657657

658658
def set_message(self, s):
659-
self.emit(QtCore.SIGNAL("message"), s)
659+
self.message.emit(s)
660660
if self.coordinates:
661661
self.locLabel.setText(s.replace(', ', '\n'))
662662

@@ -746,18 +746,10 @@ def __init__(self, targetfig, parent):
746746
self.sliderhspace = QtGui.QSlider(QtCore.Qt.Vertical)
747747

748748
# constraints
749-
QtCore.QObject.connect(self.sliderleft,
750-
QtCore.SIGNAL("valueChanged(int)"),
751-
self.sliderright.setMinimum)
752-
QtCore.QObject.connect(self.sliderright,
753-
QtCore.SIGNAL("valueChanged(int)"),
754-
self.sliderleft.setMaximum)
755-
QtCore.QObject.connect(self.sliderbottom,
756-
QtCore.SIGNAL("valueChanged(int)"),
757-
self.slidertop.setMinimum)
758-
QtCore.QObject.connect(self.slidertop,
759-
QtCore.SIGNAL("valueChanged(int)"),
760-
self.sliderbottom.setMaximum)
749+
self.sliderleft.valueChanged.connect(self.sliderright.setMinimum)
750+
self.sliderright.valueChanged.connect(self.sliderleft.setMaximum)
751+
self.sliderbottom.valueChanged.connect(self.slidertop.setMinimum)
752+
self.slidertop.valueChanged.connect(self.sliderbottom.setMaximum)
761753

762754
sliders = (self.sliderleft, self.sliderbottom, self.sliderright,
763755
self.slidertop, self.sliderwspace, self.sliderhspace,)
@@ -820,24 +812,12 @@ def __init__(self, targetfig, parent):
820812
self.sliderhspace.setSliderPosition(
821813
int(targetfig.subplotpars.hspace*1000))
822814

823-
QtCore.QObject.connect(self.sliderleft,
824-
QtCore.SIGNAL("valueChanged(int)"),
825-
self.funcleft)
826-
QtCore.QObject.connect(self.sliderbottom,
827-
QtCore.SIGNAL("valueChanged(int)"),
828-
self.funcbottom)
829-
QtCore.QObject.connect(self.sliderright,
830-
QtCore.SIGNAL("valueChanged(int)"),
831-
self.funcright)
832-
QtCore.QObject.connect(self.slidertop,
833-
QtCore.SIGNAL("valueChanged(int)"),
834-
self.functop)
835-
QtCore.QObject.connect(self.sliderwspace,
836-
QtCore.SIGNAL("valueChanged(int)"),
837-
self.funcwspace)
838-
QtCore.QObject.connect(self.sliderhspace,
839-
QtCore.SIGNAL("valueChanged(int)"),
840-
self.funchspace)
815+
self.sliderleft.valueChanged.connect(self.funcleft)
816+
self.sliderbottom.valueChanged.connect(self.funcbottom)
817+
self.sliderright.valueChanged.connect(self.funcright)
818+
self.slidertop.valueChanged.connect(self.functop)
819+
self.sliderwspace.valueChanged.connect(self.funcwspace)
820+
self.sliderhspace.valueChanged.connect(self.funchspace)
841821

842822
def funcleft(self, val):
843823
if val == self.sliderright.value():

lib/matplotlib/backends/qt4_editor/formlayout.py

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -70,33 +70,33 @@ class ColorButton(QtGui.QPushButton):
7070
"""
7171
Color choosing push button
7272
"""
73-
__pyqtSignals__ = ("colorChanged(QColor)",)
73+
colorChanged = QtCore.Signal(QtGui.QColor)
7474

7575
def __init__(self, parent=None):
7676
QtGui.QPushButton.__init__(self, parent)
7777
self.setFixedSize(20, 20)
7878
self.setIconSize(QtCore.QSize(12, 12))
79-
self.connect(self, QtCore.SIGNAL("clicked()"), self.choose_color)
79+
self.clicked.connect(self.choose_color)
8080
self._color = QtGui.QColor()
8181

8282
def choose_color(self):
83-
color = QtGui.QColorDialog.getColor(self._color,self.parentWidget(),'')
83+
color = QtGui.QColorDialog.getColor(self._color, self.parentWidget(), '')
8484
if color.isValid():
8585
self.set_color(color)
8686

8787
def get_color(self):
8888
return self._color
8989

90-
@QtCore.Slot("QColor")
90+
@QtCore.Slot(QtGui.QColor)
9191
def set_color(self, color):
9292
if color != self._color:
9393
self._color = color
94-
self.emit(QtCore.SIGNAL("colorChanged(QColor)"), self._color)
94+
self.colorChanged.emit(self._color)
9595
pixmap = QtGui.QPixmap(self.iconSize())
9696
pixmap.fill(color)
9797
self.setIcon(QtGui.QIcon(pixmap))
9898

99-
color = QtCore.Property("QColor", get_color, set_color)
99+
color = QtCore.Property(QtGui.QColor, get_color, set_color)
100100

101101

102102
def to_qcolor(color):
@@ -118,13 +118,11 @@ def __init__(self, color, parent=None):
118118
QtGui.QHBoxLayout.__init__(self)
119119
assert isinstance(color, QtGui.QColor)
120120
self.lineedit = QtGui.QLineEdit(color.name(), parent)
121-
self.connect(self.lineedit, QtCore.SIGNAL("editingFinished()"),
122-
self.update_color)
121+
self.lineedit.editingFinished.connect(self.update_color)
123122
self.addWidget(self.lineedit)
124123
self.colorbtn = ColorButton(parent)
125124
self.colorbtn.color = color
126-
self.connect(self.colorbtn, QtCore.SIGNAL("colorChanged(QColor)"),
127-
self.update_text)
125+
self.colorbtn.colorChanged.connect(self.update_text)
128126
self.addWidget(self.colorbtn)
129127

130128
def update_color(self):
@@ -354,8 +352,7 @@ def __init__(self, datalist, comment="", parent=None):
354352

355353
self.stackwidget = QtGui.QStackedWidget(self)
356354
layout.addWidget(self.stackwidget)
357-
self.connect(self.combobox, QtCore.SIGNAL("currentIndexChanged(int)"),
358-
self.stackwidget, QtCore.SLOT("setCurrentIndex(int)"))
355+
self.combobox.currentIndexChanged.connect(self.stackwidget.setCurrentIndex)
359356

360357
self.widgetlist = []
361358
for data, title, comment in datalist:
@@ -428,9 +425,10 @@ def __init__(self, data, title="", comment="",
428425
self.update_buttons)
429426
if self.apply_callback is not None:
430427
apply_btn = bbox.addButton(QtGui.QDialogButtonBox.Apply)
431-
self.connect(apply_btn, QtCore.SIGNAL("clicked()"), self.apply)
432-
self.connect(bbox, QtCore.SIGNAL("accepted()"), QtCore.SLOT("accept()"))
433-
self.connect(bbox, QtCore.SIGNAL("rejected()"), QtCore.SLOT("reject()"))
428+
apply_btn.clicked.connect(self.apply)
429+
430+
bbox.accepted.connect(self.accept)
431+
bbox.rejected.connect(self.reject)
434432
layout.addWidget(bbox)
435433

436434
self.setLayout(layout)

0 commit comments

Comments
 (0)
0