[Pythonmac-SIG] Crossplatform UI libraries best supported on the Mac?
Karl Merkley
karl at elemtech.com
Tue May 24 17:35:56 CEST 2005
On May 24, 2005, at 9:21 AM, Bob Ippolito wrote:
>
> On May 24, 2005, at 7:08 AM, Karl Merkley wrote:
>
>>
>> On May 23, 2005, at 9:42 PM, Kenneth McDonald wrote:
>>
>>
>>> This is only half a Mac question, I admit, but the Mac aspect will be
>>> a big influence...
>>>
>>> I'd like to pick a crossplatform UI library for which Python has
>>> bindings, to start doing some programming in. I've used and liked Tk
>>> a
>>> lot in the past, but unfortunately it seems to be (1) way out
>>> popularity, (2) not moving forward in any significant sense, and (3),
>>> in my experience, often quite difficult to use on the Mac with Python
>>> and other Tk addons, due to compile issues.
>>>
>>> The flavors o' the day seem to be either QT or wxWindows. So,
>>> questions:
>>>
>>> 1) Is either of these difficult to install or use with Python on the
>>> Mac, using a version of Python newer than that which shipped with
>>> Tiger? If one is easier, which one?
>>>
>>> 2) Similarly, for which is it easier to get third-party widgets and
>>> libs up and running, under the conditions stated above.
>>>
>>> 3) Finally, since I'm asking, a non-Mac question; which do people
>>> think is better, both in the context of using with Python, and in the
>>> more general context of being a good UI lib.
>>>
>>>
>>
>> Just to give the other side of the issue . . . I don't do a lot of
>> PyQt
>> but for the instances that I have it has always worked great. I do a
>> LOT of Qt in a C++ environment across a wide range of platforms (Mac,
>> Windows*, Linux, IRIX, HPUX, Solaris, 32 and 64 bit OS's).
>>
>> I don't have any problems with the build environment. Qmake takes a
>> tiny bit of learning but it's not bad. I am actually using CMake for
>> the cross platform build environment for a very large project (>1M
>> lines with multiple 3rd party libraries) because it was a little more
>> powerful/flexible.
>
> I was really referring to the fact that Qt has all sorts of screwed up
> things in their own build process for Mac OS X (Qmake aside), so you
> end up having to tweak environment variables that you should *NEVER
> EVER TOUCH* (dyld stuff) and you end up with software that has
> incorrect dylib paths in it (unless cleaned up with install_name_tool
> manually or with macho_standalone / py2app).
>
> PyQt (SIP really) also does a lot of really bizarre things it
> shouldn't do, and puts WAY too much code behind the scenes in C (even
> inter-module dependencies), so it's not possible for py2app, py2exe,
> etc. to correctly analyze this code. py2app says "oh well, they're
> using SIP, let's include ALL sip modules" so you end up with huge
> applications that you have to prune by hand. py2exe doesn't know
> anything about the issue so you end up with non-working applications
> and you have to keep adding PyQt bits until it works. cx_Freeze
> includes even less library-specific code than py2exe does, so I
> imagine it's much the same there too.
>
> Since they can't get their library linked correctly, I don't see how
> they can be trusted to offer a stable as-native-as-possible
> cross-platform environment for Mac OS X. Having tried it out -- they
> can't. wxWidgets doesn't quite deliver on that yet either, but
> they're much farther along and you don't get hit with license fees or
> stuck with the GPL if you use it.
>
>
>> Licensing can be a concern but I got my customer to pay for commercial
>> Qt and PyQt licenses. My customer is happy with the work that I do
>> and
>> I give them the tools they ask for more rapidly than I could with
>> other
>> GUI development packages (IMHO of course). I am happy to pay some
>> money to keep a useful tool alive since I am making a living by using
>> the tool.
>
> I'd love to pay license fees for when I need something that works well
> enough everywhere, but such a product doesn't exist yet (when
> "everywhere" includes Mac OS X). Except maybe REALbasic -- but then
> you have a different problem.
>
>> I made my initial decision about three years ago. At that time I felt
>> Qt was by far the stronger library and I have not been disappointed
>> with that decision.
>
> Three years ago it didn't work at all on Mac OS X, unless you could
> the X11 version, which you shouldn't.
>
> I'm not sure I'd say it completely "works" on Mac OS X even today. I
> did say, specifically, that I highly recommend ignoring Qt *on the
> Mac*. It works fine, even great in many cases, on other platforms...
> but this is pythonmac-sig, python-list, so presumably the person
> asking the question wants to make applications that work well on the
> Mac (and they did say "the Mac aspect will have a big influence").
>
All I can say is that I ported my very large, very complex app to the
Mac during the last 6 month release cycle. Qt was the least of my
worries. Everything worked great with a single code base on all my
platforms. I did run into one problem with custom cursors and I had to
disable them on the Mac. A bummer but not a killer. Yes, I did have
to do my own packaging using the installl_name_tool. I had to build a
script to build the bundle for me. But I have so many component
libraries and frameworks that I wanted to make sure that I know exactly
what is going on anyway.
BTW, I embed python in my app and I do it in the same method on all
platforms and I do not use py2app to help me with that process. I
have been interested in your comments on that but as I have not had any
problems as of yet I haven't worried about it and the method that I am
using works regardless of platform.
Karl
More information about the Pythonmac-SIG
mailing list