Hi list,

I'm using matplotlib as a library, in a program using the
new APIs of PyQt4, which will be the normal APIs for
Python 3. Unfortunately, the matplotlib Qt4 backend is
not compatible with this new API.

The problems are easy to fix: first QFileDialog.getSaveFileName
has changed, and is to be replaced with
QFileDialog.getSaveFileNameAndFilter, for example with the following
patch:

-----------------------------------------------------------------------------------------------
--- backend_qt4.py      2011-03-02 16:17:19.526831397 +0100
+++ backend_qt4_orig.py 2011-03-02 16:16:38.257797767 +0100
@@ -395,9 +395,8 @@
             filters.append(filter)
         filters = ';;'.join(filters)

-        fname, _ = QtGui.QFileDialog.getSaveFileNameAndFilter(
-            self, "Choose a filename to save to", start, filters,
-            selectedFilter)
+        fname = QtGui.QFileDialog.getSaveFileName(
+            self, "Choose a filename to save to", start, filters,
selectedFilter)
         if fname:
             try:
                 self.canvas.print_figure( unicode(fname) )
-----------------------------------------------------------------------------------------------

secondly, QString is used in the new formlayout, wich can be avoided
using yet another patch, that I actually once filed as Path #3081405
in the matplotlib patch tracker.

-----------------------------------------------------------------------------------------------
--- formlayout.py       2010-10-05 11:45:01.000000000 +0200
+++ formlayout.py-orig  2010-10-01 12:28:34.000000000 +0200
@@ -56,7 +56,8 @@
                          QPixmap, QTabWidget, QApplication, QStackedWidget,
                          QDateEdit, QDateTimeEdit, QFont, QFontComboBox,
                          QFontDatabase, QGridLayout)
-from PyQt4.QtCore import Qt, SIGNAL, SLOT, QSize, pyqtSignature, pyqtProperty
+from PyQt4.QtCore import (Qt, SIGNAL, SLOT, QSize, QString,
+                          pyqtSignature, pyqtProperty)
 from datetime import date


@@ -101,7 +102,10 @@
     Avoid warning from Qt when an invalid QColor is instantiated
     """
     color = QColor()
-    text = unicode(text)
+    if isinstance(text, QString):
+        text = str(text)
+    if not isinstance(text, (unicode, str)):
+        return color
     if text.startswith('#') and len(text)==7:
         correct = '#0123456789abcdef'
         for char in text:
-----------------------------------------------------------------------------------------------------------

Greetings

Martin

-- 
Max-Born-Institut
Max-Born-Straße 2a
12489 Berlin
+49 30 6392 1234

------------------------------------------------------------------------------
Free Software Download: Index, Search & Analyze Logs and other IT data in 
Real-Time with Splunk. Collect, index and harness all the fast moving IT data 
generated by your applications, servers and devices whether physical, virtual
or in the cloud. Deliver compliance at lower cost and gain new business 
insights. http://p.sf.net/sfu/splunk-dev2dev 
_______________________________________________
Matplotlib-devel mailing list
Matplotlib-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-devel

Reply via email to