On Sun, 31 Aug 2003, Aviram Jenik wrote: > We are currently debating on what GUI infrastructure to use for one of our > products, and the main downside of qt seems to be its constraining license. > Can anyone shed more light on this subject? How much does the qt license cost > to develop a non-GPL product that uses qt library? > Does it also apply for tools like kdevelop? > Are there any free (read: completely free, with no "we're-free-but" fine > print) alternatives other than gtk and WxWindows?
you didn't state what kind of application you need to develope - which, i think, is quite relevant to the choice of toolkit. i had the opportunity to develope some linux GUI application for some company, which needed to show both simple windows (canvas display, dialog-boxes, tables) and some time-based graphs - and was supposed to run on linux, with no real portability requirements. i went for gtk+ (programming in C, mind you) because i could use it for free, and i could find the proper extentions to show the time-based graphs for it. eventually, we managed to come up with a GUI that looked mostly decent (it wasn't an application meant for end-users, althought it was used in a trade show in the USA, to demonstrate the hardware that company developed). the down-sides i stumbled on were: 1. documentation. gtk+'s reference manual (that was 1-1.5 years ago, and we used gtk1.2, when gtk2.0 was just released) was very 'empty' (i.e. each function had an enrty, but often with no text attached to it). i used some experience i had with gtk+ previously (on a hobbist level) and lots of looking in the header files, and guessing, to overcome this issue. 2. the time-based graph widget i used contained a fundamental bug. ofcourse, since it was open-source, i was able to debug it and fix the bug. yet, i had to spend about 2-2.5 days on decyphering the code ;) 3. the timers of glib/gtk do not account for drifting, which caused the time-based graphs to come out with shifts. i had to re-write the timers code several times, eventually implementing my own delta-list on top of gtk's basic timer, to overcome the problem, until i managed to get the graphs to display properly, with a normal deviation of about 50ms per dot (we drew 1 point per second). 4. gtk's GUI builder, glade, has two modes. one is 'code generation' (un-useable in a proper project, since it re-writes the same code you modify). the other is using libglade (less convinient due to the way it handles callbacks - but useable). glade itself has some quirks which require getting used to, but if you don't try to play with it too much, and use it systematically, it is useable. the libglade mode also made it easy to write code that dynamically loads windows on-the-fly - which is a feature we needed for part of the application. overall, the time we spent on the overcoming gtk+'s shortcomings, had cost (in a rough estimation) less (money-wise) then buying a Qt license (and Qt did not have a time-based plotting widget - i found one freely available such widget on the net, that i did not like) - and i don't think that using Qt would make the development time shorter then it was - when you're using some 3rd-party library - any library - for a less-then-trivial project, you're bound to hit the library's rough points. in general, it _looks_ like the greatest trade-off between open-source and closed-source code, is having the source and not having to pay royaltees/licenses, against having good documentation and having no source (well, with Qt you have the full source, which is useful for debugging your code - that alleviates a lot of the problem). i find the same trade-off exists with other libraries (e.g. ACE Vs. Roguewave's commercial libraries) - and which of those suites you, depends alot on your personality. after developing using commercial tools for ~4.5 years, and free software for 1.5 years - i know which side i want to be on - but that's me. if you'll have an intention of using gtk+ (and judging by your letter - you currently don't) and would like some more details - feel free to mail me. -- guy "For world domination - press 1, or dial 0, and please hold, for the creator." -- nob o. dy ================================================================= To unsubscribe, send mail to [EMAIL PROTECTED] with the word "unsubscribe" in the message body, e.g., run the command echo unsubscribe | mail [EMAIL PROTECTED]