[Yt-dev] Fwd: [Enthought-Dev] PySide to replace PyQt?

Matthew Turk matthewturk at gmail.com
Wed Aug 26 07:53:38 PDT 2009


As some of you know, yt's GUI right now is based on hand-coded
wxPython.  The next generation, available in the yt hg repo, is based
on TraitsUI.  Right now it uses some wx-specific code for generating
Matplotlib canvases, but it's largely portable.  It looks like going
forward TraitsUI will primarily use Qt.  I've used the nextgen GUI
with Qt (switching toolkits is trivial with TraitsUI) and it looks
good, but this will still be something of a change, when it happens --
I anticipate we'll track TraitsUI on this front.  It's not clear to me
how easy installing Qt is from an automated standpoint.

The second message contains Eric Jones's response about PyQt/PySide
and the future of TraitsUI.

Forwarded conversation
Subject: [Enthought-Dev] PySide to replace PyQt?
------------------------

From: Glenn Tarbox, PhD <glenn at tarbox.org>
Date: Tue, Aug 25, 2009 at 8:31 PM
To: IPython-dev at scipy.org, Enthought-Dev at enthought.com


Sooner or later, something was gonna need to happen WRT Riverbank and
the PyQt licensing.  I had hoped that an entirely new project wasn't
going to be necessary.... but apparently it is.

PySide Released to the Wild:
http://labs.trolltech.com/blogs/2009/08/25/pyside-released-to-the-wild/

>From the PySide FAQ

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

What about PyQt?

Nokia’s initial research into Python bindings for Qt involved speaking
with Riverbank Computing, the makers of PyQt. We had several
discussions with them to see if it was possible to use PyQt to achieve
our goals. Unfortunately, a common agreement could not be found , so
in the end we decided to proceed with PySide.

We will however maintain API compatibility with PyQt (you can use the
same method names but can’t inter-operate with PyQt), at least for the
initial release. To import PySide you have to use “import PySide”
instead of “import PyQt4″.

<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

I didn't know where to post this.  PySide needs to mature a bit
(support more than Linux for example) but both Matplotlib and
Enthought are affected.  PyQt will likely need to be replaced in both
packages once PySide becomes more mature as the licensing of PyQt is
problematic now that Qt is LGPL.  Its also likely that with Nokia's
backing, the PySide API will eventually dominate.

Hopefully, the above statement regarding the similarity of the API
will make moving over easy.  Personally I'd like to see a focus on Qt
vs Wx by Enthought as I believe it to be much more powerful... but
thats my personal opinion and what I use.

As a side note, I've successfully nailed my C++ Qt code to IPython
using a Cython shim.  The PyQt event loop is available and all seems
to work great.

-glenn

--
Glenn H. Tarbox, PhD ||  206-274-6919
http://www.tarbox.org

_______________________________________________
Enthought-Dev mailing list
Enthought-Dev at enthought.com
https://mail.enthought.com/mailman/listinfo/enthought-dev


----------
From: Eric Jones <eric at enthought.com>
Date: Wed, Aug 26, 2009 at 1:04 AM
To: enthought-dev at enthought.com


Here are my thoughts and comments:
1. We are switching our focus to Qt and away from wx for all new work.
 That happened when the
   Qt LGPL was announced.  We aren't abandoning wx in the near future, though.
    To much of our legacy stuff relies on it.
2. Evan Patterson has done excellent work this summer, and switching
between wx and qt backends
    on traits.ui/Envisage applications work pretty dang well.  At
least two of our large (consulting)
    applications work well under either one without a line of code
changed to switch between the two.
3. We're going to use PyQt (purchasing the requisite licenses) for
consulting project releases later this year.
4. We are pained to see that Nokia and Riverbank didn't come to an agreement.
    a. It has led to an awkward in-between period where Nokia's
solution isn't ready,
        and Phil's is inevitably losing part of its mind share.
    b. We like Phil and appreciate the huge contributions he has made
with PyQt and
        also all the work he put into traits.ui for the Qt backend.  I
really would like to see
        the code purchased by Nokia.  With the limited information we
all have, it does
        seem that all parties (Nokia, Phil, the community) would have
come out ahead had
        they reached an agreement.  Of course, limited information is
of limited value...
    c. We feel there are several iterations before PySide performs as
well (cpu and memory)
        and is as robust as PyQt.  That leads to more work for all of
us to use PyQt now
        and switch to/test on PySide later.
    d. It just hurts to think about talented engineers re-solving a
well solved problem with
        little engineering benefit.  The planet is losing many man
years of engineering effort that
        could be applied to new problems.  Talented man years are
harder to come by than
        people think...
5. QScintilla is part of PyQt, but I am not sure (even doubt) it will
be in PySide.  It
    is a useful widget in the software IDE world, and it'll take a lot
of work to reproduce
    the wrapper in a clean room.  I'm not sure QTextEdit will suffice
as a replacement.
    We'll have to see how this pans out.
6. Inevitably the licensing issue will lead to a larger community using PySide.
7. Much work is being done on IPython to make it easier to fit into a
GUI.  We also
    have a version that Gael put together last year for wx.  We are
waiting to move this
    to Qt until the huge IPython re-factor going on is finished.
There are many subtleties
    in the corner's of IPython and GUIs that are hard to get right.
The wx version we
    have is passable, but not robust enough to be an
IPython-in-console replacement.
Sigh.
eric

_______________________________________________
Enthought-Dev mailing list
Enthought-Dev at enthought.com
https://mail.enthought.com/mailman/listinfo/enthought-dev


_______________________________________________
Enthought-Dev mailing list
Enthought-Dev at enthought.com
https://mail.enthought.com/mailman/listinfo/enthought-dev



More information about the yt-dev mailing list