Jorge Scandaliaris <jorgesmbox-ml@...83...> 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:
jorge
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)
Werner
···
On 6/5/2014 15:10, Jorge Scandaliaris wrote:
Jorge Scandaliaris <jorgesmbox-ml@...83...> 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:
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
···
On 05/06/2014 15:24, Werner wrote:
On 6/5/2014 15:10, Jorge Scandaliaris wrote:
Jorge Scandaliaris <jorgesmbox-ml@...83...> 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)
...
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,
Using 'six' for just the above case is definitely overkill, but it has many more goodies in it to make py2/py3 single source code easier.
Werner
···
On 6/5/2014 15:45, "V. Armando Sol�" wrote: