|
From: V. A. S. <so...@es...> - 2014-06-05 13:46:12
|
On 05/06/2014 15:24, Werner wrote: > On 6/5/2014 15:10, Jorge Scandaliaris wrote: >> Jorge Scandaliaris <jorgesmbox-ml@...> writes: >> >>> Hi, >>> I just mentioned this problem with Qt4Agg and python 3.4 in another thread >>> [1], but I decided to post it on a thread of its own, as I suspect it might >>> be a bug in the Qt4Agg backend. >>> >>> I get a NameError exception (see backtrace below) when trying to use key >>> events in matplotlib (master branch rev: >>> e322d5f5bb024bbec44d3ba76da1bc16bf52af9c), python 3.4.1, and pyqt 4.10. >>> Is this a bug? >> I can confirm that using chr() instead of unichr() fixes this problem. I >> don't know how ones handle python2 vs python3 in these cases >> >> diff --git a/lib/matplotlib/backends/backend_qt4.py >> b/lib/matplotlib/backends/backend_qt4.py >> index 70152aa..b0d8233 100644 >> --- a/lib/matplotlib/backends/backend_qt4.py >> +++ b/lib/matplotlib/backends/backend_qt4.py >> @@ -362,7 +362,7 @@ class FigureCanvasQT(QtGui.QWidget, FigureCanvasBase): >> if event_key > MAX_UNICODE: >> return None >> >> - key = unichr(event_key) >> + key = chr(event_key) >> # qt delivers capitalized letters. fix capitalization >> # note that capslock is ignored >> if 'shift' in mods: > You would use 'six' - https://pypi.python.org/pypi/six it is used by > many packages including wxPython. > > import six > > if six.PY3: > key = chr(event_key) > > else: > key = unichr(event_key) > Just for info. I had never heard about six. Is there anything wrong using sys???: import sys if sys.version < "3.0": key = unichr(event_key) else: key = chr(event_key) Thanks, Armando |