8000 Update qt4 editor, make compatible with PyQt4 APIs v1 and v2 · radford/matplotlib@fa82c5a · GitHub
[go: up one dir, main page]

Skip to content

Commit fa82c5a

Browse files
committed
Update qt4 editor, make compatible with PyQt4 APIs v1 and v2
1 parent d2afb93 commit fa82c5a

File tree

1 file changed

+20
-24
lines changed

1 file changed

+20
-24
lines changed

lib/matplotlib/backends/qt4_editor/formlayout.py

Lines changed: 20 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
# 1.0.7: added support for "Apply" button
3838
# 1.0.6: code cleaning
3939

40-
__version__ = '1.0.7'
40+
__version__ = '1.0.9'
4141
__license__ = __doc__
4242

4343
DEBUG = False
@@ -56,9 +56,9 @@
5656
QPixmap, QTabWidget, QApplication, QStackedWidget,
5757
QDateEdit, QDateTimeEdit, QFont, QFontComboBox,
5858
QFontDatabase, QGridLayout)
59-
from PyQt4.QtCore import (Qt, SIGNAL, SLOT, QSize, QString,
59+
from PyQt4.QtCore import (Qt, SIGNAL, SLOT, QObject, QSize,
6060
pyqtSignature, pyqtProperty)
61-
from datetime import date
61+
import datetime
6262

6363

6464
class ColorButton(QPushButton):
@@ -102,7 +102,8 @@ def text_to_qcolor(text):
102102
Avoid warning from Qt when an invalid QColor is instantiated
103103
"""
104104
color = QColor()
105-
if isinstance(text, QString):
105+
if isinstance(text, QObject):
106+
# actually a QString, which is not provided by the new PyQt4 API:
106107
text = str(text)
107108
if not isinstance(text, (unicode, str)):
108109
return color
@@ -272,24 +273,19 @@ def setup(self):
272273
field.setCurrentIndex(selindex)
273274
elif isinstance(value, bool):
274275
field = QCheckBox(self)
275-
if value:
276-
field.setCheckState(Qt.Checked)
277-
else:
278-
field.setCheckedState(Qt.Unchecked)
279-
276+
field.setCheckState(Qt.Checked if value else Qt.Unchecked)
280277
elif isinstance(value, float):
281278
field = QLineEdit(repr(value), self)
282279
elif isinstance(value, int):
283280
field = QSpinBox(self)
281+
field.setRange(-1e9, 1e9)
284282
field.setValue(value)
285-
field.setMaximum(1e9)
286-
elif isinstance(value, date):
287-
if hasattr(value, 'hour'):
288-
field = QDateTimeEdit(self)
289-
field.setDateTime(value)
290-
else:
291-
field = QDateEdit(self)
292-
field.setDate(value)
283+
elif isinstance(value, datetime.datetime):
284+
field = QDateTimeEdit(self)
285+
field.setDateTime(value)
286+
elif isinstance(value, datetime.date):
287+
field = QDateEdit(self)
288+
field.setDate(value)
293289
else:
294290
field = QLineEdit(repr(value), self)
295291
self.formlayout.addRow(label, field)
@@ -318,11 +314,10 @@ def get(self):
318314
value = float(field.text())
319315
elif isinstance(value, int):
320316
value = int(field.value())
321-
elif isinstance(value, date):
322-
if hasattr(value, 'hour'):
323-
value = field.dateTime().toPyDateTime()
324-
else:
325-
value = field.date().toPyDate()
317+
elif isinstance(value, datetime.datetime):
318+
value = field.dateTime().toPyDateTime()
319+
elif isinstance(value, datetime.date):
320+
value = field.date().toPyDate()
326321
else:
327322
value = eval(str(field.text()))
328323
valuelist.append(value)
@@ -459,7 +454,7 @@ def fedit(data, title="", comment="", icon=None, parent=None, apply=None):
459454
# Create a QApplication instance if no instance currently exists
460455
# (e.g. if the module is used directly from the interpreter)
461456
if QApplication.startingUp():
462-
QApplication([])
457+
_app = QApplication([])
463458

464459
dialog = FormDialog(data, title, comment, icon, parent, apply)
465460
if dialog.exec_():
@@ -481,7 +476,8 @@ def create_datalist_example():
481476
('font', ('Arial', 10, False, True)),
482477
('color', '#123409'),
483478
('bool', True),
484-
('datetime', date(2010, 10, 10)),
479+
('date', datetime.date(2010, 10, 10)),
480+
('datetime', datetime.datetime(2010, 10, 10)),
485481
]
486482

487483
def create_datagroup_example():

0 commit comments

Comments
 (0)
0