python GUIs comparison (want)

Discussion in 'Python' started by jiang.haiyun@gmail.com, Oct 24, 2006.

  1. Guest

    Now i began to learn GUI programming. There are so many
    choices of GUI in the python world, wxPython, pyGTK, PyQT,
    Tkinter, .etc, it's difficult for a novice to decide, however.
    Can you draw a comparison among them on easy coding, pythonish design,
    beautiful and generous looking, powerful development toolkit, and
    sufficient documentation, .etc.
    It's helpful for a GUI beginner.
    Thank you.


    :)Sorry for my poor english.
     
    , Oct 24, 2006
    #1
    1. Advertising

  2. John Henry Guest

    wrote:
    > Now i began to learn GUI programming. There are so many
    > choices of GUI in the python world, wxPython, pyGTK, PyQT,
    > Tkinter, .etc, it's difficult for a novice to decide, however.
    > Can you draw a comparison among them on easy coding, pythonish design,
    > beautiful and generous looking, powerful development toolkit, and
    > sufficient documentation, .etc.
    > It's helpful for a GUI beginner.
    > Thank you.
    >
    >
    > :)Sorry for my poor english.


    I like Pythoncard. Simple. Get the job done fast.
     
    John Henry, Oct 24, 2006
    #2
    1. Advertising

  3. wrote:
    > Now i began to learn GUI programming. There are so many
    > choices of GUI in the python world, wxPython, pyGTK, PyQT,
    > Tkinter, .etc, it's difficult for a novice to decide, however.
    > Can you draw a comparison among them on easy coding, pythonish design,
    > beautiful and generous looking, powerful development toolkit, and
    > sufficient documentation, .etc.
    > It's helpful for a GUI beginner.
    > Thank you.
    >
    >
    > :)Sorry for my poor english.
    >


    I googled "python gui compare" a while back and got
    www.awaretek.com/toolkits.html as the first result.

    Every variation on the values I entered seemed to point me to wxPython,
    which I'm still using now. However, they seem to think that EasyGUI is
    the easiest to learn, but that it suffers on "Maturity, documentation,
    breadth of widget selection".

    All the best,

    Cameron.
     
    Cameron Walsh, Oct 24, 2006
    #3
  4. Paul Boddie Guest

    Cameron Walsh wrote:
    >
    > I googled "python gui compare" a while back and got
    > www.awaretek.com/toolkits.html as the first result.


    See also the python.org Wiki for more information:

    http://wiki.python.org/moin/UsefulModules
    http://wiki.python.org/moin/GuiProgramming (big list!)

    > Every variation on the values I entered seemed to point me to wxPython,
    > which I'm still using now. However, they seem to think that EasyGUI is
    > the easiest to learn, but that it suffers on "Maturity, documentation,
    > breadth of widget selection".


    The figures behind the scenes are quite enlightening for that
    particular page. If you (or community experiences) don't agree with the
    rankings (wxPython apparently even easier to learn than PythonCard and
    Tkinter, a bunch of Gtk-based toolkits having more or less "full" Linux
    scores) then you'll have some surprises, I'm sure. Nevertheless, it's
    an interesting concept.

    Paul
     
    Paul Boddie, Oct 24, 2006
    #4
  5. Peter Decker Guest

    On 23 Oct 2006 22:07:39 -0700,
    <> wrote:
    > Now i began to learn GUI programming. There are so many
    > choices of GUI in the python world, wxPython, pyGTK, PyQT,
    > Tkinter, .etc, it's difficult for a novice to decide, however.
    > Can you draw a comparison among them on easy coding, pythonish design,
    > beautiful and generous looking, powerful development toolkit, and
    > sufficient documentation, .etc.
    > It's helpful for a GUI beginner.
    > Thank you.


    I've used several, and I think that Dabo (http://dabodev.com) is the
    best choice. Dabo is an entire application framework, but you can just
    use the dabo.ui parts if that's all you need. Then when you are no
    longer a beginner and you want to develop more complex apps, you won't
    need to change tools.

    --

    # p.d.
     
    Peter Decker, Oct 24, 2006
    #5
  6. Kevin Walzer Guest

    wrote:
    > Now i began to learn GUI programming. There are so many
    > choices of GUI in the python world, wxPython, pyGTK, PyQT,
    > Tkinter, .etc, it's difficult for a novice to decide, however.
    > Can you draw a comparison among them on easy coding, pythonish design,
    > beautiful and generous looking, powerful development toolkit, and
    > sufficient documentation, .etc.
    > It's helpful for a GUI beginner.
    > Thank you.
    >
    >
    > :)Sorry for my poor english.
    >


    Tkinter:
    Pro: Default GUI library for Python; stable; well-supported
    Con: Needs extension for complex/rich GUI's; core widgets are dated in
    look and feel; many modern extensions in Tcl/Tk have not made it into
    Tkinter or are not widely used (Tile, Tablelist)

    wxPython:
    Pro: Popular, actively developed, wraps native widgets, looks great on
    Windows, commercial-friendly license
    Con: Based on C++ toolkit; docs assume knowledge of C++; some think
    coding style is too much like C++; complex to build and deploy on Linux
    (wraps Gtk)

    PyQt:
    Pro: Powerful, cross-platform, sophisticated GUI's
    Con: Based on C++ toolkit; docs assume knowledge of C++; commercial
    deployment is expensive; free deployment must be GPL; smaller
    development and user community than wxPython

    PyGtk:
    Pro: Sophisticated GUI's, cross-platform (Linux and Win32); very popular
    on some platforms; active development community
    Con: Not native on OS X





    --
    Kevin Walzer
    Code by Kevin
    http://www.codebykevin.com
     
    Kevin Walzer, Oct 24, 2006
    #6
  7. Christophe Guest

    Kevin Walzer a écrit :
    > wrote:
    >> Now i began to learn GUI programming. There are so many
    >> choices of GUI in the python world, wxPython, pyGTK, PyQT,
    >> Tkinter, .etc, it's difficult for a novice to decide, however.
    >> Can you draw a comparison among them on easy coding, pythonish design,
    >> beautiful and generous looking, powerful development toolkit, and
    >> sufficient documentation, .etc.
    >> It's helpful for a GUI beginner.
    >> Thank you.
    >>
    >>
    >> :)Sorry for my poor english.
    >>

    >
    > Tkinter:
    > Pro: Default GUI library for Python; stable; well-supported
    > Con: Needs extension for complex/rich GUI's; core widgets are dated in
    > look and feel; many modern extensions in Tcl/Tk have not made it into
    > Tkinter or are not widely used (Tile, Tablelist)

    Also, the Tkinter API is far less elegant than the others.

    > wxPython:
    > Pro: Popular, actively developed, wraps native widgets, looks great on
    > Windows, commercial-friendly license
    > Con: Based on C++ toolkit; docs assume knowledge of C++; some think
    > coding style is too much like C++; complex to build and deploy on Linux
    > (wraps Gtk)

    See PyQt remarks. And I would add that the coding style is too much like
    MFC and Win32 as a con.

    > PyQt:
    > Pro: Powerful, cross-platform, sophisticated GUI's
    > Con: Based on C++ toolkit; docs assume knowledge of C++; commercial
    > deployment is expensive; free deployment must be GPL; smaller
    > development and user community than wxPython

    Since when is "based on C++ toolkit" a con?

    > PyGtk:
    > Pro: Sophisticated GUI's, cross-platform (Linux and Win32); very popular
    > on some platforms; active development community
    > Con: Not native on OS X


    You forgot that it is rather buggy on Win32 ( in my experience )
     
    Christophe, Oct 24, 2006
    #7
  8. Kevin Walzer Guest

    Christophe wrote:

    > Since when is "based on C++ toolkit" a con?
    >


    If you don't know C++ (as is the case with me), then it's difficult to
    do a C++-to-Python translation in looking at code examples.

    --
    Kevin Walzer
    Code by Kevin
    http://www.codebykevin.com
     
    Kevin Walzer, Oct 24, 2006
    #8
  9. Christophe Guest

    Kevin Walzer a écrit :
    > Christophe wrote:
    >
    >> Since when is "based on C++ toolkit" a con?
    >>

    >
    > If you don't know C++ (as is the case with me), then it's difficult to
    > do a C++-to-Python translation in looking at code examples.


    As if a toolkit based on C would be much easier.

    In fact, I would even say that C++ -> Python is much much easier than C
    -> Python for GUI toolkits.
     
    Christophe, Oct 24, 2006
    #9
  10. Christophe wrote:

    > Also, the Tkinter API is far less elegant than the others.


    huh? create object, display object, create object, display object.
    sure looks like plain old Python to me...

    </F>
     
    Fredrik Lundh, Oct 24, 2006
    #10
  11. Guest

    Ron Stevens of the Python411 podcast(1) has some good info on these. He
    did an entire podcast(2) comparing different Python GUI tools, and did
    several others in greater detail, including specifically on wyPython and
    Tkinter. You can also subscribe to the RSS feed(3). The main page has
    titles for all of the podcasts and direct links to the mp3s.

    Shawn



    1. http://www.awaretek.com/python/
    2. http://libsyn.com/media/awaretek/Python411_070509_GUItoolkits.mp3
    3. http://www.awaretek.com/python/index.xml
     
    , Oct 24, 2006
    #11
  12. Kevin Walzer Guest

    Christophe wrote:
    > Kevin Walzer a écrit :
    >> Christophe wrote:
    >>
    >>> Since when is "based on C++ toolkit" a con?
    >>>

    >>
    >> If you don't know C++ (as is the case with me), then it's difficult to
    >> do a C++-to-Python translation in looking at code examples.

    >
    > As if a toolkit based on C would be much easier.
    >
    > In fact, I would even say that C++ -> Python is much much easier than C
    > -> Python for GUI toolkits.


    Well, Tk isn't *based* on C (it's written in C, but it doesn't wrap a
    lower-level GUI framework for C). Tk is my preferred toolkit. But then,
    I'm a Tcl developer by background, and less experienced with Python.

    For what it's worth, the reason I learned Tcl before Python is because I
    wanted to learn a GUI package that was native/specific to the
    programming language in question, and Tcl/Tk is the only instance of
    this in scripting languages. With Python, as far as I know, every GUI
    toolkit in question was developed for another language (Tcl, C/C++,
    etc.), and is wrapped by Python. It makes learning GUI programming in
    Python a daunting task for a newbie.

    --
    Kevin Walzer
    Code by Kevin
    http://www.codebykevin.com
     
    Kevin Walzer, Oct 24, 2006
    #12
  13. Peter Decker Guest

    On 10/24/06, Kevin Walzer <> wrote:

    > wxPython:
    > Pro: Popular, actively developed, wraps native widgets, looks great on
    > Windows, commercial-friendly license
    > Con: Based on C++ toolkit; docs assume knowledge of C++; some think
    > coding style is too much like C++; complex to build and deploy on Linux
    > (wraps Gtk)


    I agree with this assessment. I hated writing the code in wxPython,
    since it was very ugly, with tons of getters/setters lots of constants
    and ids WRITTEN_IN_ALL_CAPS. Yuck.

    That's why I think you and others are doing a grave disservice by
    ignoring Dabo. With Dabo, you get the best-looking toolkit across
    platforms (wxPython), but a clean, Pythonic API with none of the C++
    crud. I've been a dozen times more productive since I switched to
    doing my UI code in dabo.ui, and even better, I don't have to
    constantly look up the names of the appropriate constants, etc. - the
    API is that much more consistent.

    --

    # p.d.
     
    Peter Decker, Oct 24, 2006
    #13
  14. Guest

    I have to say that py-gtk is a pain to install. You have copywrites
    with the various parts of the library when you install all of it with
    apple and the people that do the pill library. I am looking at
    wxwindows and maybe vpython for graphics (If it will do what I want).
    wx.grid is a pain thus far but once you get it seems to work realy
    well. You load dabo and then load your program through dabo... That
    was all I needed to know to disregard it.

    http://www.dexrow.com




    Peter Decker wrote:
    > On 10/24/06, Kevin Walzer <> wrote:
    >
    > > wxPython:
    > > Pro: Popular, actively developed, wraps native widgets, looks great on
    > > Windows, commercial-friendly license
    > > Con: Based on C++ toolkit; docs assume knowledge of C++; some think
    > > coding style is too much like C++; complex to build and deploy on Linux
    > > (wraps Gtk)

    >
    > I agree with this assessment. I hated writing the code in wxPython,
    > since it was very ugly, with tons of getters/setters lots of constants
    > and ids WRITTEN_IN_ALL_CAPS. Yuck.
    >
    > That's why I think you and others are doing a grave disservice by
    > ignoring Dabo. With Dabo, you get the best-looking toolkit across
    > platforms (wxPython), but a clean, Pythonic API with none of the C++
    > crud. I've been a dozen times more productive since I switched to
    > doing my UI code in dabo.ui, and even better, I don't have to
    > constantly look up the names of the appropriate constants, etc. - the
    > API is that much more consistent.
    >
    > --
    >
    > # p.d.
     
    , Oct 25, 2006
    #14
  15. Peter Decker Guest

    On 24 Oct 2006 16:38:28 -0700, <> wrote:

    > You load dabo and then load your program through dabo... That
    > was all I needed to know to disregard it.


    Wow - inaccurate and proud of it!

    Your loss.

    --

    # p.d.
     
    Peter Decker, Oct 25, 2006
    #15
  16. David Boddie Guest

    On Tuesday 24 October 2006 17:38, Kevin Walzer wrote:

    > PyQt:
    > Pro: Powerful, cross-platform, sophisticated GUI's
    > Con: Based on C++ toolkit;


    That's not a bad thing in itself.

    > docs assume knowledge of C++;


    Only to a point. I knew Python before I knew C++, and it didn't stop
    me from learning PyQt. Think of it as an easy introduction to C++. ;-)

    Actually, when it comes to code snippets and examples for Qt, you
    only really need to perform some basic search and replace operations
    to get close to the same code in Python:

    :: maps to .
    -> maps to .
    this maps to self
    && maps to and
    || maps to or

    and so on. Unless you're just copying the code out of the browser,
    it should be fairly straightforward to follow.

    > commercial deployment is expensive; free deployment must be GPL;


    Opinions differ on the first one of these. It's a matter of
    perspective.

    > smaller development and user community than wxPython


    Can you back that up with some numbers?

    David
     
    David Boddie, Oct 25, 2006
    #16
  17. David Boddie wrote:

    >> commercial deployment is expensive; free deployment must be GPL;

    >
    > Opinions differ on the first one of these.


    even if you define "expensive" as "costs more money than the others" ?

    </F>
     
    Fredrik Lundh, Oct 25, 2006
    #17
  18. Christophe Guest

    Fredrik Lundh a écrit :
    > David Boddie wrote:
    >
    >>> commercial deployment is expensive; free deployment must be GPL;

    >>
    >> Opinions differ on the first one of these.

    >
    > even if you define "expensive" as "costs more money than the others" ?

    Even if you consider that the huge time saving you get out of using Qt
    is worth more than what you pay to acquire a licence?

    That's the idea anyway.
     
    Christophe, Oct 25, 2006
    #18
  19. Christophe Guest

    Fredrik Lundh a écrit :
    > Christophe wrote:
    >
    >> Also, the Tkinter API is far less elegant than the others.

    >
    > huh? create object, display object, create object, display object. sure
    > looks like plain old Python to me...


    Let's see :

    ..pack(side = "left")

    fred = Button(self, fg = "red", bg = "blue")
    fred["fg"] = "red"

    fred.bind("<Enter>", turnRed)

    Yep, unelegant API I mantain it.

    And no modern layout manager available. Only those old school
    left/right/up/down pack and anchors are available.
     
    Christophe, Oct 25, 2006
    #19
  20. Christophe wrote:

    >>>> commercial deployment is expensive; free deployment must be GPL;
    >>>
    >>> Opinions differ on the first one of these.

    >> even if you define "expensive" as "costs more money than the others" ?

    >
    > Even if you consider that the huge time saving you get out of using Qt
    > is worth more than what you pay to acquire a licence?


    then it sounds like a combination between "it's a silver bullet!" and
    "commercial software is better than free software!".

    no matter how good Qt is, the reality is that if you spend that much
    time on the UI implementation parts of your project, you're probably
    developing at the wrong abstraction level -- no matter what toolkit
    you're using. and if you're doing UI development the wrong way, chances
    are that you're doing other things the wrong way too.

    </F>
     
    Fredrik Lundh, Oct 25, 2006
    #20
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Basile STARYNKEVITCH
    Replies:
    0
    Views:
    336
    Basile STARYNKEVITCH
    Sep 2, 2003
  2. Christopher Culver

    OO design, Python, and GUIs

    Christopher Culver, Nov 18, 2003, in forum: Python
    Replies:
    3
    Views:
    419
    Alan Gauld
    Nov 18, 2003
  3. Andrew McLean

    Driving win32 GUIs with Python

    Andrew McLean, Dec 19, 2004, in forum: Python
    Replies:
    2
    Views:
    461
    Andrew McLean
    Dec 20, 2004
  4. Bob Swerdlow

    Windows GUIs from Python

    Bob Swerdlow, Jan 11, 2005, in forum: Python
    Replies:
    7
    Views:
    395
    Jon Perez
    Jan 12, 2005
  5. Tuvas

    Python GUIs

    Tuvas, Sep 21, 2005, in forum: Python
    Replies:
    3
    Views:
    379
    Lonnie Princehouse
    Sep 21, 2005
Loading...

Share This Page