Either the entire application has to be GPL(-compatible), or you have to pay for a commercial license (in the $1000s of dollars per developer). wxPython is LGPL, which imposes no restrictions on applications which use it (only on modifications of the library itself). Qt itself (and presumably PySide) can also be licensed under the LGPL, but PyQt is still limited.
and if I use wxpython, can I make some pretty UI using skin?
or pyQT is better than wxpython for pretty UI?
Give them all a good try, to see which works best for your way of working, and ask questions on the relevant list if you run into problems while trying them out.
I use Boa for a long time and like it not only because of its UI designer but really really like its debugger and some other IDE type features, e.g. ctrl-h to get help for Python/wxPython and other defined help books. Unfortunately it is a bit dated, i.e. hasn’t had a new version for a long time.
If you don’t go with wxPython then you should also look at pySlide (a more permissive license then pyQT, but still pretty new) and pyGTK.
I have looked the sample screenshot both of them. and QT is more nicer than wxPython, I think.
What were the wxPython screenshots you looked at? Can you post a link please?
wxPython is intended to look “native”, which means its widgets should look like what the platform wants widgets to look like. There are some exceptions to this, but generally it looks on Windows like applications look on Windows; on Mac as they do on Mac; on Linux as they do on Linux. I believe pyQT also uses native widgets, mostly.
I think one can make nice looking apps with either toolkit.
The OP mentioned “skinning” – the QT approach should be better suited to skinned apps – I think “nice” or “pretty” is meaningless, but if you
goal is to have all the widgets look like what you want, rather than like the ordinarily platform widgets, then wx is not a great choice, it simply is not designed for that.
→ you mean wxPython is not good for “nice” or “pretty” interface
wxPython is intended to look “native”, which means its widgets should look like what the platform wants widgets to look like. There are some exceptions to this, but generally it looks on Windows like applications look on Windows; on Mac as they do on Mac; on Linux as they do on Linux. I believe pyQT also uses native widgets, mostly.
It sure didn’t used to – it did it’s own drawing of all the widgets – then they had themes that more-or-less matched the native ones, but Ive never seen a QT app that looks or acts native on the Mac – they generally don’t even use the native file selector dialogs, and the like.
(pyGTK is even worse, from a native-look-and-feel-perspective, on the Mac)
The OP mentioned “skinning” – the QT approach should be better suited to skinned apps – I think “nice” or “pretty” is meaningless, but if you goal is to have all the widgets look like what you want, rather than like the ordinarily platform widgets, then wx is not a great choice, it simply is not designed for that.
I can’t tell you from experience if QT is any better in that regard, but I suspect it is.
and look into PySide for a more flexible license – I don’t know how robust it is yet, but if it meets your needs, it’s a more flexible license.
I spent a few minutes last week playing with someone else’s Qt (C++, not Python) application on Mac, and while it was very attractive and worked well, it was definitely not native Mac appearance, even if some of the fonts and controls looked the same. I don’t know what version of Qt it used but it was written in the last 6-12 months, so it couldn’t be too out of date. My preference is still for the 100% native
look, but I suspect that Qt minimizes some of the cross-platform quirks
that arise from using the native controls on each platform. (I’m very lucky that I don’t have to support Windows…)
This sounds like it is matching the theme of the native UI, but still not using it directly. If it’s done well, I suppose that the user won’t notice the difference.
Though Mac apps still don’t seem to do anything as basic as using the native file picker – which is a surprisingly big deal!
I spent a few minutes last week playing with someone else’s Qt (C++, not Python) application on Mac, and while it was very attractive and worked well, it was definitely not native Mac appearance, even if some of the fonts and controls looked the same. I don’t know what version of Qt it used but it was written in the last 6-12 months, so it couldn’t be too out of date. My preference is still for the 100% native look, but I suspect that Qt minimizes some of the cross-platform quirks that arise from using the native controls on each platform. (I’m very lucky that I don’t have to support Windows…)
Native UI rendering APIs is not the same as native widgets. It's a lot closer than it used to be, but still enough difference that somebody familiar and comfortable with the native widgets can feel the difference. There is a PyQt app that I use now and then on OS X, and although almost all of the individual components look correct, little things about the way they behave and how they are all put together is non-native enough that it makes me cringe to use the application.
It's not unheard of for wx applications to have the same types of trouble, but if enough attention is paid to the UI by the developer on each of the platforms they want to deploy to then it is possible to at least mostly eliminate the problems.
···
On 6/21/11 2:35 PM, C M wrote:
It sure didn't used to -- it did it's own drawing of all the widgets
-- then they had themes that more-or-less matched the native ones,
but Ive never seen a QT app that looks or acts native on the Mac
I know essentially nothing about this firsthand, but it seems like that
has changed:
earlier, IMHO it is best to know how to hand code UI and use a
designer for the tedious parts. This requires more learning and
experience unfortunately. But of course what is right for me
does not have to be right for you. Play around a little with
both toolkits and make an informed decision on you own.
--> What is IMHO?
It is an abbreviation, widely used in internet mails and messages,
I'm always interested in comparisons like this. I have limited
(although non-zero) experience with Qt
The great strength of the Qt toolkit lies in its Unicode
compliance. It uses internally utf-16. It uses the unicode
features; in a QPlainTextEdit widget, <enter>'s key hits are
(logically) mapped as u'\u2029'.
unicodedata.name(u'\u2029')
PARAGRAPH SEPARATOR
PySide reflects this behaviour very well and it
somehow forces the user to work in a "unicode
mode". (There are plenty other cases like this).
[...] and my experience led me to the
impression that Qt is HUGE. Do you find that a PyQt-based application
is significantly larger than a wxPython application?