Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Python for professsional Windows GUI apps?

40 views
Skip to first unread message

Gilles Ganault

unread,
Aug 24, 2009, 8:08:40 AM8/24/09
to
Hello

I was wondering if some people in this ng use Python and some GUI
toolkit (PyWin32, wxWidgets, QT, etc.) to build professional
applications, and if yes, what it's like, the pros and cons, etc.

I'm especially concerned about the lack of controls, the lack of
updates (lots of controls in wxWidgets are 1.0 deadware), and problems
linked to how to update users' PC remotely when I build a new version
using eg. Py2exe.

I need controls for business apps like access to databases, good data
grid, printing reports (with or without barcodes), etc.

Thank you.

sturlamolden

unread,
Aug 24, 2009, 10:45:44 AM8/24/09
to
On 24 Aug, 14:08, Gilles Ganault <nos...@nospam.com> wrote:

> I'm especially concerned about the lack of controls, the lack of
> updates (lots of controls in wxWidgets are 1.0 deadware), and problems
> linked to how to update users' PC remotely when I build a new version
> using eg. Py2exe.

There is pywin32 if you like to work with MFC and ActiveX. Apart from
that, lack of controls is not what I associate with GTK, Qt or
wxWidgets.


> I need controls for business apps like access to databases, good data
> grid, printing reports (with or without barcodes), etc.

Why do you want GUI controls for this? If you think you do, Visual
Basic has crippled your mind.

Python has packages for database connectivity. There is ReportLab for
reports, matplotlib for graphs, pyagg or pycairo for whatever you want
to draw, etc. You can find Python packages for anything you can
imagine.

Sturla

sturlamolden

unread,
Aug 24, 2009, 11:08:07 AM8/24/09
to
On 24 Aug, 14:08, Gilles Ganault <nos...@nospam.com> wrote:

> and problems
> linked to how to update users' PC remotely when I build a new version
> using eg. Py2exe.

Remote update is a problem regardless of language. It typically
involves the following steps:

1. Download the update from a server using a background thread.

2. When the program starts, look for downloaded updates. Install
updates, then launch the Python app.

The problem is that a program's DLLs etc. become write-protected when
the program runs. So you nees two programs that cooperate to install
updates. But regardless of language you will run into this problem -
it is not Python specific. With py2exe, you can solve this using two
executables. The first py2exe launch a script that installs updates,
then spawns the second py2exe executable. The second py2exe lauch a
script that installs updates in the first, then launch the Python app.
The Python app then run a background thread that downloads new
updates.


Sturla Molden

ru...@yahoo.com

unread,
Aug 24, 2009, 12:56:47 PM8/24/09
to

I sure you'll get plenty of GUI-x is really great and you'll
is just as good as anything commercial out there, so I thought
a minority opinion, even if unpopular, might be useful.

Won't comment on the control choices or packaging issues, but I
am at the moment doing a little database-connected app that
presents editable data in a spreadsheet like (grid) form using
wxPython.

It has been a very painful process. I have not found any simple
pre-written code to connect a wxPython grid to a database so
that the result is something like a Microsoft Access datasheet.[*1]
It is probably taking me 10 times as long to develop this app
in WxPython/Postgresql as it did to develop something similar
in MS Access/VBA/SQL Server.

I haven't needed for printing yet, but I've read wxpython maillist
posts about the difficultly of getting printing to work so you may
want to check that out as well before commiting to wxpython.

A meta-issue that applies (I think) to both wxPython and PyQt
is that both projects seem to be highly dependent on a single
person leading one to worry about the "bus" scenario.

I am not a fan of Microsoft (in fact I despise their commercial
behavior and many aspects of thier products) but I am reporting
the reality as I've experienced it.

[*1] There are ORMs like Sqlalchemy but they introduce a additional
problems like inefficient database operations, dependency on a
large external package, etc. It is hard to tell for sure since
the Sqlalchemy docs are lousy, which of course means even more
development time.

Peter Decker

unread,
Aug 24, 2009, 9:51:42 PM8/24/09
to pytho...@python.org
On Mon, Aug 24, 2009 at 11:49 AM, Stephen Hansen<apt.s...@gmail.com> wrote:

> P.S. I have no idea why I'm pumping Dabo so much in this though I've never
> used it!

I've used in fairly regularly for about 2 years now. I haven't had to
write that ugly wxPython code for so long that every time I see
examples on their mail list I wanna barf.

Dabo is powerful, Pythonic, and strongly supported by its developers.
Check it out at http://dabodev.com

--

# p.d.

sturlamolden

unread,
Aug 24, 2009, 10:26:40 PM8/24/09
to
On 25 Aug, 03:51, Peter Decker <pydec...@gmail.com> wrote:

> I've used in fairly regularly for about 2 years now. I haven't had to
> write that ugly wxPython code for so long that every time I see
> examples on their mail list I wanna barf.

I prefer wxFormBuilder. GUIs should be designed visually whenever
possible.


Che M

unread,
Aug 24, 2009, 11:37:23 PM8/24/09
to

> I'm especially concerned about the lack of controls, the lack of
> updates (lots of controls in wxWidgets are 1.0 deadware),

I use wxPython. No lack of controls there, and most are up to
date. Which "lots" in wxWidgets are you thinking of?

> I need controls for business apps like access to databases, good data
> grid,

Should be fine with wxPython.

> printing reports (with or without barcodes), etc.

Maybe ReportManager? (haven't used) or other options.

-cm

Steve

unread,
Aug 24, 2009, 11:37:19 PM8/24/09
to
You can also use Windows Forms with IronPython

http://www.ironpython.info/index.php/Contents#Windows_Forms

Peter Decker

unread,
Aug 24, 2009, 11:56:23 PM8/24/09
to pytho...@python.org

I use the Dabo Class Designer to visually design my forms. So what's
you're point? :)

--

# p.d.

sturlamolden

unread,
Aug 25, 2009, 1:22:20 AM8/25/09
to
On 25 Aug, 05:56, Peter Decker <pydec...@gmail.com> wrote:

> I use the Dabo Class Designer to visually design my forms. So what's
> you're point?  :)

Nothing, except lobbying for wxFormBuilder for anyone who still
doesn't know of it. :)

Wolfgang Keller

unread,
Aug 25, 2009, 7:24:39 AM8/25/09
to
> I need controls for business apps like access to databases, good data
> grid, printing reports (with or without barcodes), etc.

The area of _desktop_ database application development indeed looks like a vast and very hostile desert in the Python landscape.

The only framework that seems to be worth trying is Dabo. Unfortunately there's little documentation, and that's mostly outdated.

There's also Kiwi, but that's even less well documented.

And GNU Enterprise essentially seems to be dead.

Sincerely,

Wolfgang

--
NO "Courtesy Copies" PLEASE!

Gilles Ganault

unread,
Aug 25, 2009, 2:30:27 PM8/25/09
to
On Tue, 25 Aug 2009 13:24:39 +0200, Wolfgang Keller <feli...@gmx.net>
wrote:

>The area of _desktop_ database application development indeed looks like a vast and very hostile desert in the Python landscape.
>
>The only framework that seems to be worth trying is Dabo. Unfortunately there's little documentation, and that's mostly outdated.
>
>There's also Kiwi, but that's even less well documented.
>
>And GNU Enterprise essentially seems to be dead.

Combined with the comment above about issues with printing, it looks
like Python for GUI apps isn't a very good idea :-/

I'd be interested in checking out commercial applications written in
Python for the Windows OS, if there are any.

Thank you.

David Boddie

unread,
Aug 25, 2009, 2:37:35 PM8/25/09
to
On Tuesday 25 August 2009 13:24, Wolfgang Keller wrote:

> The area of _desktop_ database application development indeed looks like a
> vast and very hostile desert in the Python landscape.
>
> The only framework that seems to be worth trying is Dabo. Unfortunately
> there's little documentation, and that's mostly outdated.
>
> There's also Kiwi, but that's even less well documented.
>
> And GNU Enterprise essentially seems to be dead.

There's also Camelot, if that's the kind of thing you're after:

http://www.conceptive.be/projects/camelot

David

sturlamolden

unread,
Aug 25, 2009, 2:44:11 PM8/25/09
to
On 25 Aug, 20:30, Gilles Ganault <nos...@nospam.com> wrote:

> Combined with the comment above about issues with printing, it looks
> like Python for GUI apps isn't a very good idea :-/

With pywin32, printing is the same as for any other Windows app (you
get MFC for Python).

sturlamolden

unread,
Aug 25, 2009, 2:54:21 PM8/25/09
to
On 25 Aug, 13:24, Wolfgang Keller <felip...@gmx.net> wrote:

> The area of _desktop_ database application development indeed looks like a vast and very hostile desert in the Python landscape.

Yes, you don't have drag-and-drop database tools like MS Access or
FoxPro. You actually have to use a database API (such as pyodbc or
pymssql) with GUI (tkinter, wxPython, PyGTK, PyQt, MFC) manually. If
you need a framework for this, you should not be developing software
anyway.

Peter Decker

unread,
Aug 25, 2009, 5:31:55 PM8/25/09
to pytho...@python.org
On Tue, Aug 25, 2009 at 7:24 AM, Wolfgang Keller<feli...@gmx.net> wrote:

> The only framework that seems to be worth trying is Dabo. Unfortunately there's little documentation, and that's mostly outdated.

To be honest, that was my biggest concern when I tried Dabo. However,
after as small a learning curve as one could expect for any
non-trivial tool, it seemed that if I wasn't sure what a particular
way to do something was, the most obvious guess was almost always
correct. Contrast that with developing in wxPython, which has quite a
bit of documentation, which I constantly had to refer to, because the
confusing and inconsistent design.

There is a step by step guide on Google docs written by one of the
authors that is a very helpful approach to using Dabo. The authors are
also very active on the dabo-users list, and any questions are quickly
answered.

So I guess if you need a desktop framework in Python, I would strongly
urge you to check out Dabo and not let the volume of documentation
scare you off.

--

# p.d.

geekworking

unread,
Aug 25, 2009, 7:04:01 PM8/25/09
to
If you are planning a database driven app, you should first settle on
a DB server. Any real enterprise DB system will put all of the
business logic in the database server. The choice of a front end
should be secondary.


Wikipedia's list of Python apps:
http://en.wikipedia.org/wiki/List_of_Python_software

Simon Brunning

unread,
Aug 26, 2009, 4:14:33 AM8/26/09
to pytho...@python.org, geekworking
2009/8/26 geekworking <geekw...@gmail.com>:

> If you are planning a database driven app, you should first settle on
> a DB server. Any real enterprise DB system will put all of the
> business logic in the database server. The choice of a front end
> should be secondary.

The trend for some years now has been to get behavior out of the
database and into the application, where it belongs. True, we tend to
keep the presentation tier separate too, but we really don't "put all


of the business logic in the database server".

Going back to the OP's question, it would be worth taking a look at
what the resolver boys are up to: <http://www.resolversystems.com/>.

--
Cheers,
Simon B.

erikj

unread,
Aug 26, 2009, 4:29:52 AM8/26/09
to
Hi,

You could have a look at Camelot, to see if it fits
your needs : http://www.conceptive.be/projects/camelot/

it was developed with cross platform business apps in
mind. when developing Camelot, we tried to build it using
wxWidgets first (because of the licensing at that time),
but it turned out that developing with QT proved to be
much more straightforward. QT is documented very well
and you seldom encounter 'strange' issues that cost hours
of time to pinpoint and fix.

the datagrid was developed to be able to handle millions
of database records without glitches and is flexible thanks
to QT's model-view-delegate framework.

we do print barcodes with this app (even directly to
zebra printers)

if you have questions regarding Camelot, please feel free
to post on our mailing list : http://groups.google.com/group/project-camelot

Regards,

Erik

David C Ullrich

unread,
Aug 26, 2009, 4:47:23 PM8/26/09
to

That's great. But do you know of anything I can use as a
visual form design tool in wxPython?

Stef Mientki

unread,
Aug 26, 2009, 6:24:34 PM8/26/09
to pytho...@python.org
Not a real form designer, but very convenient is XRC or GUI-support
http://mientki.ruhosting.nl/data_www/pylab_works/pw_gui_support.html

cheers,
Stef

sturlamolden

unread,
Aug 26, 2009, 7:08:53 PM8/26/09
to
On 26 Aug, 22:47, David C Ullrich <dullr...@sprynet.com> wrote:

> > Nothing, except lobbying for wxFormBuilder for anyone who still doesn't
> > know of it. :)
>
> That's great. But do you know of anything I can use as a
> visual form design tool in wxPython?

Right... I don't know if you are trying to be funny, but as I said
there is wxFormBuilder...

3.0 generates XRC that you can use with wxPython.
3.1 beta generates wxPython classes you can subclass.

Honestly, it's the best GUI builder for wxPython I know of.

Che M

unread,
Aug 26, 2009, 7:12:41 PM8/26/09
to
> Combined with the comment above about issues with printing, it looks
> like Python for GUI apps isn't a very good idea :-/

I don't have that feeling at all. I don't have that much of a basis
of comparison, but my experience with wxPython for making GUI apps
has been pretty good.

Does anyone know of a wxPython "gallery" of apps using it? That'd
be the quickest way to prove its usefulness.

Che

Che M

unread,
Aug 26, 2009, 7:27:07 PM8/26/09
to

If in your mind GUI-builder = form builder (or close enough)
there's Boa Constructor (my choice) and wxGlade.

Robert Kern

unread,
Aug 26, 2009, 7:40:19 PM8/26/09
to pytho...@python.org

It's possible that he is not asking for a visual form designer tool *for*
building a wxPython app, but one that can be used *inside* a wxPython app like
an IDE or something similar.

--
Robert Kern

"I have come to believe that the whole world is an enigma, a harmless enigma
that is made terrible by our own mad attempt to interpret it as though it had
an underlying truth."
-- Umberto Eco

Stef Mientki

unread,
Aug 26, 2009, 7:42:47 PM8/26/09
to pytho...@python.org
I've been grown up with (and still using) Delphi,
known as having th� best GUI-builder.
I now use wxPython (with GUI-support),
with more comfort and more easy than Delphi !

cheers,
Stef

> Thank you.
>

Hendrik van Rooyen

unread,
Aug 27, 2009, 3:47:05 AM8/27/09
to pytho...@python.org
On Wednesday 26 August 2009 22:47:23 David C Ullrich wrote:

> That's great. But do you know of anything I can use as a
> visual form design tool in wxPython?

Boa Constructor

- Hendrik


Neuruss

unread,
Aug 27, 2009, 8:31:30 AM8/27/09
to

Looks interesting, but I wonder if I can use Camelot without its ORM.
I feel that ORMs make easy things easier, but complex things much
harder...
Can I use it with plain old sql?

Luis

Peter Decker

unread,
Aug 27, 2009, 9:48:40 PM8/27/09
to pytho...@python.org

You mean you prefer the wxPython style of coding? No, I don't know
what's available. Once I discovered that Dabo is the smart way to get
all the benefits of wxPython without the ugly C++ style of coding, I
haven't used raw wxPython.

--

# p.d.

Vivian Wang

unread,
Aug 29, 2009, 2:09:45 AM8/29/09
to
On Aug 24, 8:08 pm, Gilles Ganault <nos...@nospam.com> wrote:
> Hello
>
>         I was wondering if some people in this ng use Python and some GUI
> toolkit (PyWin32, wxWidgets, QT, etc.) to build professional
> applications, and if yes, what it's like, the pros and cons, etc.
>
> I'm especially concerned about the lack of controls, the lack of
> updates (lots of controls in wxWidgets are 1.0 deadware), and problems
> linked to how to update users' PC remotely when I build a new version
> using eg. Py2exe.
>
> I need controls for business apps like access to databases, good data
> grid, printing reports (with or without barcodes), etc.
>
> Thank you.

On Aug 24, 8:08 pm, Gilles Ganault <nos...@nospam.com> wrote:
> Hello
>
> I was wondering if some people in this ng use Python and some

GUI
> toolkit (PyWin32, wxWidgets, QT, etc.) to build professional
> applications, and if yes, what it's like, the pros and cons, etc.
>
> I'm especially concerned about the lack of controls, the lack of
> updates (lots of controls in wxWidgets are 1.0 deadware), and problems
> linked to how to update users' PC remotely when I build a new version
> using eg. Py2exe.
>
> I need controls for business apps like access to databases, good data
> grid, printing reports (with or without barcodes), etc.
>
> Thank you.

You can try biform:
http://www.bilive.com/download/Setup_BiForm_V2.1_en.msi.zip

Demo:
http://www.bilive.com/demo/BiForm_EN_demo.htm

More demo:(Chinese version)
http://www.bilive.com/demo/

BiForm is a form designer,one designed form will deploy as a PFF file.
BiReader is a runtime PFF file process engine for end-users.
Setup file above include BiForm and BiReader.

Main features:
*Python as script language,base on QT GUI library
*Visible form designer
*Internal database access framework
*Auto connect database,auto create tables
*Supports SQLite/Mssql2000/Sybase ASE,not need write diffrent script
for diffrent database at most time
*Simple deploy,simple upgrade
*Different forms can share same tables, they will auto cooperation
with other forms at runtime.If you want to deploy a new function , not
need uninstall other forms,deploy the new PFF file is enough .


erikj

unread,
Aug 29, 2009, 10:49:22 AM8/29/09
to

Yes and no :)

It uses sqlalchemy as it's orm, which is quite flexible and allows the
use of
plain old sql, but you still have to map the result to objects for the
GUI to
to handle them.

You are right that the ORM makes easy things easier, eg. what we do a
lot is
to create our core model using the ORM, and then create the different
summaries
directly as views in the database (since these are usually very
complex
queries, and those tend to be easier to write/debug in plain old
sql). Then
we use the ORM again to map those views back to objects and have them
visualized.

Cheers,

Erik

0 new messages