ready to use python, need help with GUI decision

  • Thread starter Jonathon McKitrick
  • Start date
J

Jonathon McKitrick

Hi all,

I am totally hooked on what I have learned about python. I am going to use
it to develop a simple data entry app I need for some financial record
keeping.

I understand tkinter is official and simple to use, but many who use
wxPython swear by it, and it is gaining ground.

I would like to run on any platform, but that's not critical. What I want
to do is support an app that will grow over time, and should look clean. I
don't want to spend lots of time maintaining GUI code rather than app logic.

Can anyone offer any advice?

jm
 
D

Diez B. Roggisch

Can anyone offer any advice?

If PyQt is a possible option for you - choose it. IMHO its marvellous - and
the signal-slot-mechanism is good for separating gui and logic. The
designer also works very well. If you want to use it under windows, I think
purchasing BlackAdder might be a good choice - I think of that myself,
although under Linux things are a little bit easier because of the gpl'ed
qt.
 
J

Josiah Carlson

I understand tkinter is official and simple to use, but many who use
wxPython swear by it, and it is gaining ground.

wxPython is easy to use, free, and available on most every platform you
could want to use.

I would like to run on any platform, but that's not critical. What I want
to do is support an app that will grow over time, and should look clean. I
don't want to spend lots of time maintaining GUI code rather than app logic.

If you build your application right, maintenance shouldn't be a huge issue.

While I favor wxPython, it is really the only toolkit I've ever used,
and can only really say that I enjoy using it.

PyGTK looks to be about as easy to use, but I have no experience with
it, so I'll not comment.

I would argue against using PyQT, if only for the license restrictions
on Windows.

I would suggest you not try FXPy (Python's link to the Fox GUI toolkit),
if only because the latest version is quite old.

Initially for writing GUIs in Python, I tried tk, but found the learning
curve to be too steep. It seems to get easier the more you use it.


- Josiah
 
S

simo

If you've got some money to buy a Windows commercial license, or just
want to program for Linux/GPL, then I'd say go with PyQt. The only
thing that puts me off is the stupid licensing issues which even the
PyQt/Qt/BlackAdder folks don't seem to grasp.

If you don't want to pay anything and go with whatever license you
want on Windows/Linux, then I'd say go with wxPython. What puts me off
is that some of the dialogs are completely different between OSes, or
have limited functionality on Linux.

If you don't really mind how it looks and don't need a wide range of
widgets and just want something easy, I'd say go for TKinter.
 
M

Miki Tebeka

Hello Jonathon,
Can anyone offer any advice?
I use wxPython here at work and I'm very pleased with it. Native look
and feel, a lot of widgets ...
There are some nice UI designers as well (Boa, wxGlade ...). The UI in
my projects is not that complicated to I write all the GUI in VIm, the
*Sizer are wonderful.

HTH.
Miki
 
M

Miki Tebeka

Hello Jonathon,
Can anyone offer any advice?
I use wxPython here at work and I'm very pleased with it. Native look
and feel, a lot of widgets ...
There are some nice UI designers as well (Boa, wxGlade ...). The UI in
my projects is not that complicated to I write all the GUI in VIm, the
*Sizer are wonderful.

HTH.
Miki
 
K

Kevin Altis

Well I have to make the obligatory PythonCard plug...

<plug>
http://pythoncard.sourceforge.net/
</plug>

PythonCard uses wxPython and you can mix "raw" wxPython code into your app
if needed. Since it is based on wxPython, your apps will work on Windows,
Linux/GTK, and Mac OS X.

ka
 
J

Jarek Zgoda

Kevin Altis said:
Well I have to make the obligatory PythonCard plug...

<plug>
http://pythoncard.sourceforge.net/
</plug>

PythonCard uses wxPython and you can mix "raw" wxPython code into your app
if needed. Since it is based on wxPython, your apps will work on Windows,
Linux/GTK, and Mac OS X.

Unfortunately, all other toolkits aren't much better, although on X11 I
would prefer PyQt. Check this one out, if GPL doesn't scare you.
 
L

Lothar Scholz

If you've got some money to buy a Windows commercial license, or just
want to program for Linux/GPL, then I'd say go with PyQt. The only
thing that puts me off is the stupid licensing issues which even the
PyQt/Qt/BlackAdder folks don't seem to grasp.

Why ?
From there website it seems to be clear:

"Includes the rights to distribute the run-time elements (except
mxODBC) with your application."

So why do you think that this is unclear. Did you found any comments
from QT ?
 
D

David MacQuigg

Hi all,

I am totally hooked on what I have learned about python. I am going to use
it to develop a simple data entry app I need for some financial record
keeping.

I understand tkinter is official and simple to use, but many who use
wxPython swear by it, and it is gaining ground.

I would like to run on any platform, but that's not critical. What I want
to do is support an app that will grow over time, and should look clean. I
don't want to spend lots of time maintaining GUI code rather than app logic.

Can anyone offer any advice?

I've tried TkInter, BlackAdder, and Qt. My choice is Qt. TkInter
seems a little "unpolished", at least for the level of effort I'm
willing to put in, although I see some really excellent examples of
highly polished GUI's ( IDLE for example ) so I know it can be done.

What I use now is Qt Designer, PyQt, and IDLE. This gives me an
*outstanding* GUI toolkit, an easy GUI Builder, a quick translation to
Python (using pyuic and a makefile), and a simple, but really solid
development environment. I'm developing under Linux, but expecting to
run "native" on all platforms. I haven't tried the Windows version of
Qt Designer.

I believe the licensing issue with Qt is overblown. If your work is
purely non-commercial, use the GPL license. If you are a typical
commercial developer, it should be no problem to pay $1550 per
developer license (no runtime royalties). I've heard there are
problems for commercial developers who can't afford the $1550. I
would say, don't worry. If your project fails to make a profit, I
really doubt Trolltech is going to sue you. I think they would be
quite happy to get the first $1550 of any successful project.

I think Trolltech's licensing is a model of good citizenship in the
open-source community and fair sharing of profits from commercial
work. It allows them to contribute their best version (no
cripple-ware) to the open-source community, while still earning a
living as full-time programmers.

The only thing I would like to see on the licensing is some
clarification on dealing with the penniless commercial developer.
Perhaps a limit like "we won't ask for more than 10% of your sales".
This would only affect developers with total sales less than $15,500.

-- Dave
 
V

Ville Vainio

David> On Wed, 3 Mar 2004 18:15:44 +0000, Jonathon McKitrick

David> I believe the licensing issue with Qt is overblown. If
David> your work is purely non-commercial, use the GPL license.
David> If you are a typical commercial developer, it should be no
David> problem to pay $1550 per developer license (no runtime
David> royalties). I've heard there are problems for commercial
David> developers who can't afford the $1550. I would say, don't
David> worry. If your project fails to make a profit, I really
David> doubt Trolltech is going to sue you. I think they would be
David> quite happy to get the first $1550 of any successful
David> project.

So you urge people to break copyright law until they can afford to pay
the license? I would expect such a behaviour to prove extremely
problematic and dangerous.

I would suggest instead that all the "valuable", back end parts of a
program be coded UI-independently (good idea in any case), and then
finally GUI is tacked on by connecting it to the back end via CORBA
(or equivalent). That way the GUI (which is worthless w/o the back
end) can be GPL'd.

OTOH, I would probably just use GTK or wxPython. In fact, I wouldn't
even bother learning Qt - GPL or a crapload of Euros probably won't be
terms an average employer would approve (esp. if you have to use
Windows at work), so Qt would be restricted to home use alone.
 
D

Dennis Lee Bieber

I would suggest instead that all the "valuable", back end parts of a
program be coded UI-independently (good idea in any case), and then
finally GUI is tacked on by connecting it to the back end via CORBA
(or equivalent). That way the GUI (which is worthless w/o the back
end) can be GPL'd.
Wonder if it's time someone did an update to an OLD book "The
Viewport Technician", which was an attempt at pushing a similar
philosophy. At the time, the book covered the differences in the native
toolkits of Mac, Apple II GS (!), Amiga, and early Windows.

--
 
D

David MacQuigg

David> On Wed, 3 Mar 2004 18:15:44 +0000, Jonathon McKitrick

David> I believe the licensing issue with Qt is overblown. If
David> your work is purely non-commercial, use the GPL license.
David> If you are a typical commercial developer, it should be no
David> problem to pay $1550 per developer license (no runtime
David> royalties). I've heard there are problems for commercial
David> developers who can't afford the $1550. I would say, don't
David> worry. If your project fails to make a profit, I really
David> doubt Trolltech is going to sue you. I think they would be
David> quite happy to get the first $1550 of any successful
David> project.

So you urge people to break copyright law until they can afford to pay
the license? I would expect such a behaviour to prove extremely
problematic and dangerous.

I'm not urging anyone to break the law, not even those few commercial
developers who can't afford the the license. What I'm saying is that
if you are in this rare situation, can't afford the licesne, and not
sure your product will ever be sold, you just have to be careful not
to release the product before paying your dues. The only "danger" I
can see is that code developed before you have paid for the commercial
license could get loose and allow someone to claim it as GPL and avoid
paying your license. Maybe I'm misunderstanding the problems and
dangers you forsee. Could you be more specific?
I would suggest instead that all the "valuable", back end parts of a
program be coded UI-independently (good idea in any case), and then
finally GUI is tacked on by connecting it to the back end via CORBA
(or equivalent). That way the GUI (which is worthless w/o the back
end) can be GPL'd.

This seems to me a deliberate thwarting of Trolltech's intentions. It
may be legal, but to me it seems like taking advantage of their
generosity in offering a GPL license at all. I also question the
legality. It gets down to a question of whether "connecting via
CORBA" is equivalent to "linking". There is certainly more danger in
that than anything I am suggesting. There is also danger on the GPL
end. It seems like what you are suggesting is no different than
releasing a program under GPL, but with-holding a key piece for which
you charge a license.
OTOH, I would probably just use GTK or wxPython. In fact, I wouldn't
even bother learning Qt - GPL or a crapload of Euros probably won't be
terms an average employer would approve (esp. if you have to use
Windows at work), so Qt would be restricted to home use alone.

Once it is clear your project will go commercial, just pay the license
and avoid the worries. Surly $1550 is no big deal at that point. I
have never understood the intensity of this debate over the Qt
licenses. I guess I never will.

-- Dave
 
D

DH

I am totally hooked on what I have learned about python. I am going to use
it to develop a simple data entry app I need for some financial record
keeping.

For a simple data entry app, it really doesn't matter as much. But I
guess if you need it to work on Windows & Mac & Linux, I'd use wxPython
or Tkinter.

I assume you will have some text fields and such to add or edit a
record, and some code to store records in a database perhaps.
See the dbBrowser sample for PythonCard, which is based on wxPython:
http://pythoncard.sourceforge.net/samples/dbBrowser.html

Although for your app you might just want to use a standalone database
like pysqlite or gadfly instead of mysql.
 
J

Jonathon McKitrick

Hello Jonathon,
:
: >Can anyone offer any advice?
: I use wxPython here at work and I'm very pleased with it. Native look
: and feel, a lot of widgets ...
: There are some nice UI designers as well (Boa, wxGlade ...). The UI in
: my projects is not that complicated to I write all the GUI in VIm, the
: *Sizer are wonderful.

I started out with tk/Pwm for my first decent sized project, and I really
like it. I also decided to take a look at wxPython, just for comparison. I
like the richness, but on an older laptop, it seems to take much more CPU,
like Java. Does anyone else find that to be the case?


jm
 
J

Jonathon McKitrick

Hello Jonathon,
:
: >Can anyone offer any advice?
: I use wxPython here at work and I'm very pleased with it. Native look
: and feel, a lot of widgets ...
: There are some nice UI designers as well (Boa, wxGlade ...). The UI in
: my projects is not that complicated to I write all the GUI in VIm, the
: *Sizer are wonderful.

I started out with tk/Pwm for my first decent sized project, and I really
like it. I also decided to take a look at wxPython, just for comparison. I
like the richness, but on an older laptop, it seems to take much more CPU,
like Java. Does anyone else find that to be the case?


jm
 
P

Peter Hansen

Jonathon said:
Hello Jonathon,
:
: >Can anyone offer any advice?
: I use wxPython here at work and I'm very pleased with it. Native look
: and feel, a lot of widgets ...
: There are some nice UI designers as well (Boa, wxGlade ...). The UI in
: my projects is not that complicated to I write all the GUI in VIm, the
: *Sizer are wonderful.

I started out with tk/Pwm for my first decent sized project, and I really
like it. I also decided to take a look at wxPython, just for comparison. I
like the richness, but on an older laptop, it seems to take much more CPU,
like Java. Does anyone else find that to be the case?

I *think*, given that wxPython is a thin (?) Python wrapper around
a C++ DLL that makes native calls to the OS, while Tkinter is a
Python wrapper around a TCL wrapper (complete with TCL interpreter)
around something that makes native OS calls to the OS, that wxPython
has an inherent and relatively significant advantage, performance-
wise. At least, that's my theory. I don't recall having tried
to compare them in this respect, nor do I recall past discussions
about it (though I bet Google groups does <wink>).

-Peter
 

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,756
Messages
2,569,535
Members
45,008
Latest member
obedient dusk

Latest Threads

Top