python gui builders

M

me

Good People

I do not write stuff for humans, as it has been my job to remove
humans from the loop. But I have to make a front end to a
component database where everything was built in Python.

I have looked at the Tk stuff that is built into Python -> not
acceptable. So looking at wxGlade, Boa Constructor, Python Card.
Also looked at the frames/forms created with QtDesigner, which
can be used by Python via pyuic. BlackAdder IDE seems to have
this built-in, but am loathe to buy into another GUI tool for a
single job.

I have not been able to find a decent Python gui builder. The
last time I did gui garbage was with Borland C++ Builder which
was ok because I was only using win boxen for that project. This
time I am using both Linux and Win.

What Python gui builder is well supported, does not require me
to learn another framework/library, and can crank out stuff for
multiple platforms ?

thanks much,
me
 
S

sturlamolden

What Python gui builder is well supported, does not require me
to learn another framework/library, and can crank out stuff for
multiple platforms ?

I use wxFormBuilder. The 3.1 beta can even create wxPython code, but
it still has some minor issues (e.g. not always creating correct code
due to missing "self.").

wxFormBuilder 3.0 can create XRC files, which work excellently with
wxPython. The drawback is that you must bind event handlers manually,
instead of having it done automatically (as you can with Python code
generation in 3.1 beta).

If you are fine with GPL, or can afford the commercial license, there
is QtDesigner which works with PyQt. This is a fantastic cross-
platform GUI tool, if not hte best there is.

If you are fine with Microsoft only, you can use Windows Forms with MS
Visual Studio and IronPython.

If you can use Jython, there are many tools for working with Java
Swing or SWT.
 
S

sturlamolden

If you are fine with Microsoft only, you can use Windows Forms with MS
Visual Studio and IronPython.

I also forgot to mention:

If you can restrict yourself to Windows, you can always use Visual
Basic or Borland Delphi with pywin32. Either expose your GUI as an
ActiveX to pywin32 (you have e.g. an MFC binding) or expose your
Python as an ActiveX to VB/Delphi. The same approach should work (with
a little bit more work) for C# and VB.NET.
 
M

me

Read the OP. No, read it again.
I also forgot to mention:

If you can restrict yourself to Windows, you can always use Visual
Basic or Borland Delphi with pywin32. Either expose your GUI as an
ActiveX to pywin32 (you have e.g. an MFC binding) or expose your
Python as an ActiveX to VB/Delphi. The same approach should work (with
a little bit more work) for C# and VB.NET.
 
S

Simon Hibbs

What Python gui builder is well supported, does not require me
to learn another framework/library, and can crank out stuff for
multiple platforms ?

You're looking for a framework/library that doesn't require you to
learn it. OK....

I've had this problem for a few years. I've tried PythonCard,
WxWidgets with WxDesigner, BoaConstructor, etc. None of them come
anywhere close to PyQT/QTDesigner.

Dion't get Blackadder It hasn't been updated for several years and is
a dead project. In any case it uses QTDesigner for GUI layout anyway.
You're better off using Eric or Wing if you want a decent IDE.

QT does have a learning curve of course, but you get a lot of power
back in return for the investment. I'm just coming to grips with it's
MVC framework and the book "Rapid GUI Programming with Python and Qt"
is very helpful with that.

I wouldn't completely dismiss Tkinter. It's too simple for complex
GUIs but I still think it has it's place for basic utilities.

Simon Hibbs
 
R

r

I wouldn't completely dismiss Tkinter. It's too simple for complex
GUIs but I still think it has it's place for basic utilities.

Agreed! Tkinter (besides myself) seems to be the whipping boy of
c.l.py. Tkinter has it's place in Python because of the same
simplicity people laboriously lament about! Until something else comes
along that can offer the same benefits of Tkinter and a little extra,
we are going to keep seeing Tkinter release after release. Guido knows
what he is doing people, don't sell the guy short!
 
C

CM

Good People

I do not write stuff for humans, as it has been my job to remove
humans from the loop. But I have to make a front end to a
component database where everything was built in Python.

I have looked at the Tk stuff that is built into Python -> not
acceptable. So looking at wxGlade, Boa Constructor, Python Card.
Also looked at the frames/forms created with QtDesigner, which
can be used by Python via pyuic. BlackAdder IDE seems to have
this built-in, but am loathe to buy into another GUI tool for a
single job.

I have not been able to find a decent Python gui builder. The

What was your issue with Boa Constructor? It produces wxPython
code and I find it works quite well (less well on Linux, but if
you use it in Windows, the app will run in Linux w/ minimal need
for changes).

Of course, whatever route you go, you have to learn the widget
toolkit.

Che
 
J

Joel Davis

Good People

I do not write stuff for humans, as it has been my job to remove
humans from the loop. But I have to make a front end to a
component database where everything was built in Python.

I have looked at the Tk stuff that is built into Python -> not
acceptable. So looking at wxGlade, Boa Constructor, Python Card.
Also looked at the frames/forms created with QtDesigner, which
can be used by Python via pyuic. BlackAdder IDE seems to have
this built-in, but am loathe to buy into another GUI tool for a
single job.

I have not been able to find a decent Python gui builder. The
last time I did gui garbage was with Borland C++ Builder which
was ok because I was only using win boxen for that project. This
time I am using both Linux and Win.

What Python gui builder is well supported, does not require me
to learn another framework/library, and can crank out stuff for
multiple platforms ?

thanks much,
me

Glade is pretty easy to use, especially for a simple front end, if you
already know python, then the amount of GTK you'd have to learn would
be very minimal (5-15 minute crash course in it should suffice.) build
your GUI in Glade, link the python code to the xml file, and the go
back to coding non-gui stuff in no time. The Glade utility is free
software so there's no expense (unless you get charged by the byte on
your downloads.)
 
T

Tim Daneliuk

Simon said:
You're looking for a framework/library that doesn't require you to
learn it. OK....

I've had this problem for a few years. I've tried PythonCard,
WxWidgets with WxDesigner, BoaConstructor, etc. None of them come
anywhere close to PyQT/QTDesigner.

Dion't get Blackadder It hasn't been updated for several years and is
a dead project. In any case it uses QTDesigner for GUI layout anyway.
You're better off using Eric or Wing if you want a decent IDE.

QT does have a learning curve of course, but you get a lot of power
back in return for the investment. I'm just coming to grips with it's
MVC framework and the book "Rapid GUI Programming with Python and Qt"
is very helpful with that.

I wouldn't completely dismiss Tkinter. It's too simple for complex
GUIs but I still think it has it's place for basic utilities.

Simon Hibbs

+1 Tkinter for the simple stuff
 
D

Dave Cook

Also looked at the frames/forms created with QtDesigner, which
can be used by Python via pyuic.

That's what I would recommend. What did you not like about it?

Dave Cook
 
S

sturlamolden

Agreed! Tkinter (besides myself) seems to be the whipping boy of
c.l.py. Tkinter has it's place in Python because of the same
simplicity people laboriously lament about! Until something else comes
along that can offer the same benefits of Tkinter and a little extra,
we are going to keep seeing Tkinter release after release. Guido knows
what he is doing people, don't sell the guy short!

Tkinter is fine, particularly with Tix.

But I want a GUI designer. I don't like the tedious work of hand-
coding a GUI!
 
D

Dave Cook


If it's an issue for your project, I suggest wxPython. It's
cross-platform, fairly complete, and extensible. But the API is
clunky compared to Qt.

Dave Cook
 
S

Simon Hibbs


PyQT is GPL for now, but Qt itself is available under the LGPL as is
PySide. Eventualy PySide, which tracks the PyQT API, will supplant it
and the issue will be moot. For now it can be a problem, but PyQT
developer licenses are very afordable at only a few hundred dollars.
If a commercial project can't aford that, it's got problems.

Only you can know enough to make an informed decision. Wx does look
more usable than last time I used it for a project and is a fine
option too, for me though QT is the gold standard against all others
are measured, and generaly found wanting.

Simon Hibbs
 
S

Simon Hibbs

You can actually use Tkinter to do quite sophisticated GUI's that rival
anything found in Qt or wx...

Neither Tkinteror Wx have anything that come close to QGraphicsView,
the Model-View-Delegate framework, the Phonon multimedia framework
integration, QtSQL, QtXML, QtSVG, and the many other first grade
components in Qt. You can substitute components from other frameworks,
e.g. for database access, but then you lose the integration QtSQL has
with the model-view-delegate features in other parts of the Qt world.

Qt is much more than just a GUI framework, it's more of a rival to
something like the MacOS development libraries, or the .NET framework
in terms of the library facilities it offers. I think that's why Nokia
bought into it. Qt provides them with a platform with the potential to
rival the iPhone dev environment.

Of course to take full advantage of it you need to invest in learning
it all, which is non-trivial. It comes at a cost in time and potential
lock-in. But the point is you can't just say Qt is just like Wx.

Simon Hibbs
 
D

David Bolen

Simon Hibbs said:
I've had this problem for a few years. I've tried PythonCard,
WxWidgets with WxDesigner, BoaConstructor, etc. None of them come
anywhere close to PyQT/QTDesigner.

For me, the killer feature missing from of all of the wx-based
designers is that they require sizer based designs at all stages, not
even permitting a fixed layout up front as a first draft. Either that
or any case I've found permitting a fixed layout, then didn't permit
turning that easily into a sizer-based layout.

From an overall design perspective, that was the feature I found most
intriguing in QTDesigner. I could randomly drop stuff around the
window while doing an initial layout, which is especially helpful when
you aren't quite sure yet how you want the layout to look. Then you
can select groups of objects and apply the containers to provide for
flexible layout.

I absolutely prefer sizer-based layouts for a final implementation,
but early in the design stages find it more helpful, and freeing, not
to be as tied to the containers.

With that said, for various reasons I still prefer wxPython to Qt, and
at the moment, find wxFormBuilder the best fit for my own designs
(even before the direct Python support, just using XRC).

-- David
 
S

Stef Mientki

Simon said:
PyQT is GPL for now, but Qt itself is available under the LGPL as is
PySide. Eventualy PySide, which tracks the PyQT API, will supplant it
and the issue will be moot. For now it can be a problem, but PyQT
developer licenses are very afordable at only a few hundred dollars.
If a commercial project can't aford that, it's got problems.

Only you can know enough to make an informed decision. Wx does look
more usable than last time I used it for a project and is a fine
option too, for me though QT is the gold standard against all others
are measured, and generaly found wanting.

Simon Hibbs
Wouldn't it be nice
if each fan of some form of GUI-package,
would post it's code (and resulting images) for generating one or two
standard GUI-forms ?

Then everyone can judge the differences,
and see what's simple and not so simple !!

And of course I'm willing to contribute the wxPython (wrapped in some
convenience procedures) for it.

cheers,
Stef
 
K

Kevin Walzer

Neither Tkinteror Wx have anything that come close to QGraphicsView,
the Model-View-Delegate framework, the Phonon multimedia framework
integration, QtSQL, QtXML, QtSVG, and the many other first grade
components in Qt. You can substitute components from other frameworks,
e.g. for database access, but then you lose the integration QtSQL has
with the model-view-delegate features in other parts of the Qt world.

A few points of response:

-I was focusing primarily on the UI bits, not the other parts of Qt.
People tend to think that Tkinter only has labels, listboxes, buttons
and menus: recent advances in Tk have greatly expanded and modernized
the available widgets. There's also a rich econsystem of widget packages
within Tk that can be wrapped in Tkinter.

-Qt's support for things like SQL and XML make sense in a Pythonic
context mainly if you're focusing on their integration with other parts
of Qt. Python has many of these things just fine on its own, as you
doubtless know.
Qt is much more than just a GUI framework, it's more of a rival to
something like the MacOS development libraries, or the .NET framework
in terms of the library facilities it offers. I think that's why Nokia
bought into it. Qt provides them with a platform with the potential to
rival the iPhone dev environment.

Of course, and I certainly wasn't claiming otherwise.
Of course to take full advantage of it you need to invest in learning
it all, which is non-trivial. It comes at a cost in time and potential
lock-in. But the point is you can't just say Qt is just like Wx.

wxWidgets (the C++ library) has support for a lot of things other than
UI bits, as well. wxPython itself is mainly a GUI library because the
additional features of wxWidgets in C++ are redundant in Python.

--Kevin
 

Ask a Question

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

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,994
Messages
2,570,223
Members
46,810
Latest member
Kassie0918

Latest Threads

Top