Slashdot Mirror


GTK-- vs. QT

spirality asks: "The company I work for is getting ready to decide on a GUI Toolkit for our Computational Modeling Toolkit (CoMeT, www.cometsolutions.com). We would like C++ compatibility and ports to various Unices and Win32 platforms. Not supprisingly we've come up with two choices, GTK-- and QT. I've attempted to compare the two by doing alot of web surfing and searching, but I've come up with things that are consistently one or more years old. So, the question I pose is what are the (dis)advatages of GTK-- and QT, and why would I choose one of these toolkits over the other? Overall functionality, momentum for future growth, ease of use, licensing, and pretty much anything else is relevant to our decision." With QT now at version 3.0 and GTK now in the 1.2.x revisions, maybe it's time to give the two libraries some fair comparison and discuss the new features, advantages, and disadvantages of each?

122 of 325 comments (clear)

  1. QT seems to rule by PRobinson · · Score: 2, Interesting

    I've recently got my Sharp SL-5000D which comes with a cute embedded version of QT. I'm starting to play with it some more, and I have to say I'm impressed. I've not done much GUI dev. under 'nix before, but I've followed many threads in the past elsewhere that suggests GTK is a hodge-podge and is getting out of control, with no coherent design.

    I'm not experienced, but as a lay-man, I'd have to say go for QT.

    1. Re:QT seems to rule by Capt.+Beyond · · Score: 2, Insightful

      You are correct. I have developed with QT for around 3 years now, and back then, I did check out GTK--, and it seemed very much a hodge-podge. I can't imagine it being any better now. I use QT on linux and windows and am going to be porting my program to the SL-5000D. (with the good graces of Sharp) How cool is that?
      If I had a Mac, I'd port it to that.

      --
      -- "Perceptions create reality. By changing your perceptions you change your reality."
    2. Re:QT seems to rule by Anonymous Coward · · Score: 5, Funny

      I agree with you 100%. I've neve used GTK, nor do I know anything about it, but I seem to recall that a friend of my brothers girlfriend said he heard from someone that it was rough around the edges and had no development roadmap for the future. But, on the other hand, I did read an article on ZDnet a couple of years ago about QT, so I would say that it's a much better platform.

  2. Qt if you need Win32 by Ami+Ganguli · · Score: 5, Informative

    I actually prefer GTK+ and I think it's a better bet long-term, but I don't think the cross-platform aspect of the library gets much developer attention.

    Being cross-platform is a major selling point for commerical Qt users, however, so if you need your apps to work on Windows then it's clearly the way to go.

    --
    It is tempting, if the only tool you have is a hammer, to treat everything as if it were a nail. - Abraham Maslow
    1. Re:Qt if you need Win32 by Orycterope · · Score: 4, Insightful

      Being cross-platform is a major selling point for commerical Qt users, however, so if you need your apps to work on Windows then it's clearly the way to go.

      Absolutely.

      One important thing to note about Qt is the fact that it ain't a wrapper around existing GUI APIs. It emulates the different GUIs out there, so it does the drawing itself, avoiding going through some additional API layers. That translates into a fast and responsive GUI.

      I tried it on both Windows and Linux using the platform's native GUI and GUIs from other platforms, i.e. the Motif or CDE style on Windows, the Windows style on Linux. It is very convincing and very fast.

      When performance matters, I definitely go with Qt.

      Watch out for that "non-commercial" license on Windows though. It might not be appropriate for what you are doing. Your company will probably have to acquire a Qt license for Windows.

      --
      Just because your voice reaches halfway around the world doesn't mean you are wiser than when it reached only to the end
    2. Re:Qt if you need Win32 by hattig · · Score: 5, Informative
      Knowing companies like I do, they will go with the most expensive solution - because expense usually means support. In this case QT is clearly the way to go, as everyone is pointing out (okay, wxWindows is another good choice, but I have no experience with this system).

      QT has an easier to program API, is quick to program in, has great documentation, has support, has a huge wealth of existing code examples, and is supported on Windows. GTK is not supported on Windows, and is a one-man port job. Fine for free software like the gimp, but not for a commercial application. Don't save a couple of grand on the GUI toolkit and get yourself a lot more costs in support that you have to provide because of problems.

      GTK2 might solve a lot of the problems in the current GTK of course, but I am not qualified to comment about that. And do you really want to program using a just finalised API?

      QT just does things right. 'nuff said.

    3. Re:Qt if you need Win32 by robberbarron · · Score: 3, Interesting

      Relying on a library that does UI emulation is a double-edged sword though. Since the emulation effectively replaces the native UI code, your app will lose all leverage from upgrades to the OS services. For example, an app that natively calls the Windows menu manager will automatically get the new windows XP look and feel for its menus. However, an app that uses a library that emulates the native OS will still have the old look and feel until the emulation library is upgraded. Since look-and-feel issues are the biggest gripes you will get from users when developing a cross platform library, this is not a decision that should be taken lightly.

      I've worked on two 1 million+ line sourcebases that were cross platform. One used a commercial porting library that was closed source but we had the source license for it. This was a losing proposition. If there was a bug, we could fix it in the library. However, that was a poor long-term solution because we were just patching the library rather than building a long-term cross platform infrastructure for our product.

      The second sourcebase I worked on used a home-grown UI abstraction. This one is a lot better because we have the ability to add or remove emulation as we wish. If we have an OS that doesn't support the services we need, we emulatate it. If the OS does support the services we need, we go directly to the OS and gain native look and feel with much less effort.

      For this reason, I recommend libraries that
      a) Provide a platform-neutral interface
      b) Implement the functionality by eventually calling the OS calls required to implement the functionality
      c) Is provided in source form so that you basically "own" the library. That way, any changes you make to the library improve your own long term situation.

      The only library I've seen that fits that requirement recently is wxWindows but I haven't used it for a real application so I can't comment on its suitability.

      Good luck

    4. Re:Qt if you need Win32 by fault0 · · Score: 2

      However, your point is rather moot because TrollTech quickly updates Qt whenever there are new Windows versions. For example, with win2k, they updated Qt before win2k was out to have the new fading animations, etc..

    5. Re:Qt if you need Win32 by fm6 · · Score: 2
      b) Implement the functionality by eventually calling the OS calls required to implement the functionality
      Early adopter of Java would argue with that. AWT originally relied on native controls for a lot of things -- and then broke when the controls turned out to have undocumented limitations and bugs.
  3. wxWindows (slightly OT) by Balinares · · Score: 5, Informative

    You may also want to take a look at the wxWindows toolkit. It's a wrapper over what's available on a given platform (the native API in Win32, GTK in the Unix world, and there's a Mac port in progress, I believe). Good stuff, definitely, especially if what you want is C++ and portability. Note that your apps will look totally windowsy on win32, so your users will not be confused by their look.

    --

    -- B.
    This sig does in fact not have the property it claims not to have.
    1. Re:wxWindows (slightly OT) by fault0 · · Score: 2

      > Note that your apps will look totally windowsy on win32, so your users will not be confused by their look.

      Which Qt does as well. I find wxWindows too MFC-y too use tho, although it is quite a viable alternative to Qt, especially for open software on Windows.

      However, If you want a high quality professional toolkit, stick with Qt. gtk--? no way, it's not in any good shape.

    2. Re:wxWindows (slightly OT) by Grab · · Score: 2

      Have you used FLTK or FOX as well? Any recommendations on the best out of those? I'm writing myself a front end to control the parallel port for some electronics stuff I'm doing, and I'm getting pissed off with being stuck in DOS. :-) A free toolkit to write a decent GUI interface would be ideal for me, especially if it was cross-platform.

      Since I can't afford the megabucks for a QT Windows license, I guess I'm stuck with GTK, wxWindows, FLTK or FOX. So which one to go for?

      Also, do any of these make it easy to do user-customisation of menus, toolbars etc, similar to current MS Office apps? Or docking windows?

      Grab.

    3. Re:wxWindows (slightly OT) by fault0 · · Score: 2

      It depends on if you want to release it.

      You can always use Qt non commercial on Windows for free without spending the megabucks.

      I've used FLTK, but it's a bit too light for my tasts.

      So, I think either wxWindows or Qt is your best bet.

      Qt does docking windows. Both Qt and wxWindows have good toolbar classes.

    4. Re:wxWindows (slightly OT) by Sludge · · Score: 5, Informative
      I second this, and find it not offtopic at all. wxWindows doesn't get anywhere near as much press as the other toolkits, but it's got fully fleshed out documentation available in a number of formats, active developers, four mailing lists of which I can attest the developer one getting 15-20 messages a day and ships with tons of code samples.

      The license it's under is acceptable (to me), and there are working large apps such as Audacity out there.

      When I discovered all of this, I decided to look into the technology side of things. To throw more goodness at you, let me say reiterate that the toolkit looks native to your environment which is a big win. On top of that, it lets you do things which aren't lowest common denominator and exist in only one or more environments, such as toolbar icons in Windows.

      I also like the class hierarchy. I had never done GUI programming before but everything came across rather clearly when I started reading the documentation.

      Additional to all the "low level" GUI junk, it also contains some routines for networks and a portable wxString class which is a lot like stl::string with more methods added. I found myself using this almost immediately and I haven't looked back.

      It's worth learning this stuff just to get away from MFC without taking the speed hit of learning Java/Swing and having to learn a whole new language and culture. There is even some boasting about how 'the Java honeymoon is over' on the page, stating that wxWindows is actually a more portable toolkit. :) ymmv.

      There are both Python and Perl bindings for it. I haven't looked into either really, but at least the Python ones seem to be of high quality as a number of people on the mailing list are Python programmers.

      Check it out before coming to a conclusion of what toolkit to use. It's worked for me.

    5. Re:wxWindows (slightly OT) by nihilogos · · Score: 2

      Good stuff, definitely, especially if what you want is C++ and portability.

      QT is excellent on both counts.

      --
      :wq
    6. Re:wxWindows (slightly OT) by mill · · Score: 5, Informative
      If it hasn't been mentioned yet

      Al Stevens took a look at both Qt and Gtk-- in the September and October issues of Dr Dobbs Journal.

      What he didn't like with Qt:

      • No namespaces
      • Language extensions to implement slots
      • An ill-organized and unnecessary RTTI mechanism
      • Custom rather than standard containers
      • Questionable C++ coding conventions

      The last (I think. I only have October) refers to that Qt takes ownership of objects instantiated on the heap i.e. new without a corresponding delete. Which means you have to do all instantiating on the heap because there is no portable way for Qt to know if it is on the stack, external, or static memory.

      He thinks Gtk-- remedy all these problems and he actually found the tutorial funny albeit a work in progress.

      /mill

    7. Re:wxWindows (slightly OT) by Grab · · Score: 2

      Thanks man. I didn't notice on my last look at TrollTech's site that you could use Qt on Windows without spending the megabucks - I thought their Windows version was spend-the-money only. The non-commercial version of Qt should do the job nicely. Cheers.

      I guess the only downside is the "requires Visual Studio" gotcha. I've got v5, so I hope that works. If not, it may be wxWindows instead.

      Grab.

  4. GTK Seems solid, but slow on Solaris by Dooferlad · · Score: 2, Informative

    ...but a little slow on Solaris 8. Maybe it is just me, but my build of Mozilla really jerkey on a workstation (UltraSPARK III, 2G RAM). On the other hand The Gimp runs like a dream on my Windows box, and Mozilla is zappy on Linux.

    --
    Dooferlad

    1. Re:GTK Seems solid, but slow on Solaris by SpinyNorman · · Score: 2

      I believe you can also configure mozilla to build using Xlib directly rather than GTK - but I've no idea if that makes it any faster. I've just switched to mozilla 0.9.6 from netscape 4.X as my main browser, and it is rather sluggish on both x68/linuz and SPARC/Solaris, but the tabs are a killer feature!

  5. licensing by Cardinal+Biggles · · Score: 5, Informative
    Overall functionality, momentum for future growth, ease of use, licensing, and pretty much anything else is relevant to our decision.

    To pick up your point on licensing, Qt is either GPL or pay. So if your application will also be GPL, it's free, if your application will not be GPL you will have to pay up for Qt. GTK is LGPL AFAIK (enough acronyms for you? ;-) so that will not stand in the way of making your app non-free.

    BTW, if you know C++ and want to get to know a bit about Qt, they have a pretty good tutorial online here. Just walking through the examples made me realize just how cool it is, and how much you can do in just a few lines of code.

    1. Re:licensing by Snowfox · · Score: 3, Informative
      Overall functionality, momentum for future growth, ease of use, licensing, and pretty much anything else is relevant to our decision.
      To pick up your point on licensing, Qt is either GPL or pay. So if your application will also be GPL, it's free, if your application will not be GPL you will have to pay up for Qt. GTK is LGPL AFAIK (enough acronyms for you? ;-) so that will not stand in the way of making your app non-free.

      Just remember that you only need to give your source to any entity you give the binary to. Being GPL/LGPL doesn't mean you can't use it for business use; the license is entirely transparent for apps which will only be used internally.

    2. Re:licensing by Snowfox · · Score: 2
      Actually, you cannot use the non commercial version of Qt for non free internal applications:

      Correct me if I'm wrong; I believe that Qt is dual-licensed. The TrollTech license is the one you quoted, but it's also under LGPL which doesn't permit the kind of restriciton you mention.

      So for internal proprietary use, you're 100% clear, so long as you're using the LGPL version, not a straight download from TrollTech.

  6. Licencing by CH-BuG · · Score: 3, Insightful

    If you intend to develop a closed-source product, the licence of both library will probably need to be evaluated too. If you go for
    an open licence, then it's of minor importance.
    (Qt requires licencing fees if you want to keep
    your sources closed).

    1. Re:Licencing by zmooc · · Score: 2, Informative

      As far as I know/understand, QT is GPL and GTK is LGPL so you can't make a closed-source application based on QT unless you buy a license from Trolltech.

      --
      0x or or snor perron?!
  7. Qt has better documentation by tgreiner · · Score: 5, Interesting

    I have only scratched the surface of both GTK-- and QT, but I found QT to have a *very good* documentation. It has a complete class hierarchy documentation and comes with a load of example programs.

    Another observation is that GTK-- is much more low-level than QT. If you want to extend it's components you might have to delve into the depths of the gdk library (which, in my view is only a thin wrapper around the X11-libs). QT on the other hand has a very good abstraction of windowing system details. Being mostly a Java programmer, I found the QT model very easy to use.

    Of course, YMMV.

    1. Re:Qt has better documentation by fault0 · · Score: 2

      > QT on the other hand has a very good abstraction of windowing system details.

      Yup, this is because Qt is not a gui-toolkit but rather an application framework. It provides classes that work equally on all platforms that Qt supports, saving the user from writing a bunch of #ifdefs for particular platforms. It works really well :)

    2. Re:Qt has better documentation by spitzak · · Score: 2
      QT's documentation is done by their other product doxygen (look for it with Google) which is really quite excellent for producing complete and accurate documentation. It works by reading comments added to the source code, but, unlike other systems, those comments are quite readable and easy to type, and don't have to be in the header files.

      We use it in-house and have been very happy with it.

      PS: it is not linked to Qt at all and can be used to document any C++ code.

  8. GTK+ C++ wrappers by HalfFlat · · Score: 5, Informative

    I worked on a rushed project earlier this year, and used the gtk-- C++ wrapper for GTK, as well as the gnome-- wrapper (then still very much under development) for the Gnome libraries, specifically the canvas.

    Personally, I found it frustrating to use. As these wrappers are still being worked on, the documentation is sketchy. The object-owning semantics are confusing (at least to me) - I was forever leaking memory or prematurely destroying objects. Trying to destroy something from within a menu callback I recall was particularly noisome. The gnome-- canvas wrappers were a moving target, though they may have since stabilised, and didn't fully expose the canvas API. Writing one's own canvas items is done in C, and then wrapped.

    Perhaps with more persistance I might have figured out how to set up keyboard acceleration, but it is at anyrate a real battle to find documentation that explains what is going on with it. AFAIK, there is no straightforward way of making a multiple file selection in GTK+ 1.2. In gnome canvas (not GTK+, but a close cousin) there is promised functionality that is simply not implemented - I'm thinking here of smoothed lines, for which the code reads:

    /* FIXME */

    I haven't used QT yet. It certainly looks pretty, and a quick glance at the example code and docs provided seems to indicate that it's not too complicated, and well documented. I'd certainly shy away from GTK+ if a C++ interface is required.

    The new version of GTK under development should address many of the shortcomings of the current toolkit, and includes goodies such as Pango. It is not yet in a stable state, however, with the API still undergoing final tweaking I believe.

  9. A third alternative... :) by jonathan_ingram · · Score: 3, Informative
    I'm a great fan of Qt, but I don't believe it's always the best toolkit to use for cross platform compatibility (although it is the best toolkit available for UNIX-based systems), plus there are complications about the licenses differing versions are available under. GTK-- and its competitors (Inti?) only have a very small user and documentation base, so they are probably not a good choice for a large commercial project.

    If you want cross platform compatibilty with C++, then check out wxWindows. It has ports to Windows, MacOS (9 & X), UNIX + Motif, UNIX + GTK. It also has a very well developed Python binding -- so well developed that quite a few people want it adopted as the official Python GUI instead of TKinter.

    1. Re:A third alternative... :) by fault0 · · Score: 2

      > good choice for a large commercial project.

      Nah, Qt itself is probably the best choice for a commercial project. I'd use wxWindows for free software that targets many platforms tho, and Qt for X11-only free software.

      > wxPython

      Yeah, wxPython's really nice.

  10. What about gimp? by bani · · Score: 2, Interesting

    Didn't they port gimp to win32?

    gimp is THE flagship gtk application, bar none.

    1. Re:What about gimp? by Ami+Ganguli · · Score: 5, Informative

      It exists, but I don't think it's maintained as well. The primary developers don't really care about Win32, so maintaining it is left to a few masochists :-).

      --
      It is tempting, if the only tool you have is a hammer, to treat everything as if it were a nail. - Abraham Maslow
    2. Re:What about gimp? by egghat · · Score: 2, Informative

      yeah and that's a big shame.

      GTK porting was mainly done by one single person.

      I think, there are a few other GTK based apps, which Windows Users would like. But without a stable GTK on Windows?

      Bye egghat.

      --
      -- "As a human being I claim the right to be widely inconsistent", John Peel
    3. Re:What about gimp? by FuegoFuerte · · Score: 3, Insightful

      I regularly use the GIMP on Windows, and at least for me, it's at least as stable as any of my other Windows programs. Remember one thing: if it crashes running under *nix, people will get mad. Things aren't supposed to crash under *nix. If it crashes under Windows, people will more than likely say "humbug", restart their computer, and go on with things.

  11. Before the flame wars start... by CaptainAlbert · · Score: 5, Insightful

    My suggestion - try them out.

    Come up with a few small use cases and let your developers loose on everything you can get your hands on. Both Qt and GTK+ are freely available enough for that to be a useful exercise.

    You might find that, while Qt has nicer abstractions, and provides a familiar set of classes which are (IMO) far superior to MFC... perhaps GTK has a slight edge for lower level work (which it sounds like you might get involved in). Also, see which interface builder tools your team feels most comfortable with.

    The problem with this question is that the replies are likely to degenerate quickly into a C vs. C++ rant-a-thon. Yes, GTK is entirely written in C. But it *is* object oriented. It seems strange to everyone at first, but just because a language doesn't support particular features, doesn't mean that you can't use a particular programming style. OO methodology is just as relevant to C programmers as to C++ or Java programmers.

    If your programmers are good, they'll write good code whatever the toolkit. Just make sure everyone thinks that they got a say in the decision. ;-)

    --
    These sigs are more interesting tha
    1. Re:Before the flame wars start... by jd10131 · · Score: 2, Interesting
      The problem with this question is that the replies are likely to degenerate quickly into a C vs. C++ rant-a-thon. Yes, GTK is entirely written in C. But it *is* object oriented. It seems strange to everyone at first, but just because a language doesn't support particular features, doesn't mean that you can't use a particular programming style. OO methodology is just as relevant to C programmers as to C++ or Java programmers.
      Of course. The OO features of C++ can be largely implemented in C, using structs and function pointers. Both ObjC and C++ are just C with some extra syntactic sugar...not that that is a bad thing. =)
  12. Portability to Win32 by kintel · · Score: 4, Redundant

    AFAIK, the Win32 port of GTK+ is more or less a one-man show, making GTK pretty unstable and lagging behind on Windows.
    In addition, Qt now has a Mac OS X port.

    Add this to the excellent commercial support from Trolltech.

    Design and language issues not taken into account.

  13. Mozilla (slightly OT too) by mvw · · Score: 5, Informative
    Another alternative is using Mozilla as IDE. This might sound a bit crazy right now, but I believe this idea will get more followers, if Mozilla gets more and more stable.

    An example is the Komodo IDE by ActiveState, which uses XUL.

    XUL is the next generation browser application platform. Simply speaking, the Mozilla team chose an approach very similiar to JAVA to come closer to a platform independent graphical user interface:

    • implement a set of base compenents on the most popular platforms (Win32, Mac, UNIX, ..), that render your JAVA specific widgets in terms of the native GUI.
    • implement your applications in your JAVA language
    • compile application
    • distribute JAVA binaries

    XUL goes one step farther, as there is no compilation step.

    The XUL application implementation language is a XML language that together with cascading style sheets and JavaScript glue will yield an application one starts in the browser by opening the .xul document.

    A possible advantage of XUL might become the relative ease of application development, change and distribution.

    Possible problems will be similiar to the ones known from JAVA. The qualitiy of XUL applications will stand and fall with the quality of the XUL implementation for a specific platform, which right now means the quality of its Mozilla or Netscape implementation.

    Of course, compared to JAVA, which has underwent several larger development cycles and now features mighty libraries, XUL is a bleeding edge technology at its beginnings.

    However it is still possible to make direct use of the various Mozilla widgets as well from C++.

    1. Re:Mozilla (slightly OT too) by ajs · · Score: 3, Interesting

      1. Have you used anything built on top of Mozilla (e.g. Komodo) or are you just flaming because it feels good?
      2. If you actually needed a UI that was as rich and powerful as XUL can provide, why woulld you want to go off an write it al yourself?
      3. Are you thinking in terms of writing web pages and CGI that acts as an application, or are you thinking in terms of building your UI into the XUL interface of Mozilla? These are very different things (and both actually have a place in different applications).

    2. Re:Mozilla (slightly OT too) by ajs · · Score: 2

      I've played with Komodo, and I have to say that I'm impressed. XUL+Moizilla can certainly be turned to one's advantage. I imagine that the crucial point is where you put the dividing line between your app and the UI. I would think that you'd want to build only the highest level UI pieces in XUL, and then the rest of your app in a low level language.

    3. Re:Mozilla (slightly OT too) by be-fan · · Score: 2

      You know what I meant. Besides, if you make proper programs that are nicely split up into multiple shared libraries (or you have a good compiler that does incremental compiles), then you only have to compile the interface portion when it changes.

      --
      A deep unwavering belief is a sure sign you're missing something...
  14. Some REAL points by faber · · Score: 5, Insightful

    Developing for a professional product I would always go with as many professional tools as possible.

    To me QT seems to be the FAR better decision. It has true interoperablity between Win32, MacOS X and X11.

    QT is C++ from the ground up, GTK-- is wrapping GTK++.

    Furthermore with GTK you definitely write more code to accomplish the same.

    QT 3 gives you access to SQL-databases from its widgets.

    QT comes with a very good interface builder.

    QT based programes feel snappier than GTK based ones.

    One drawback might be that you have to preprocess (actually your Makefile has to) your code before its ready for the compiler, but that's not a big deal.

    With Kdevelop you have access to a very good IDE.

    One thing I don't know is how QT works in terms of different GUI threads, but I neither know for GTK.

    So please, go with QT and be happy

    A much harder decision would be: What should I use for my Web-Frontend, mod_perl or PHP... but that's a different story!

    1. Re:Some REAL points by Sentry21 · · Score: 4, Insightful

      > QT is C++ from the ground up, GTK-- is wrapping GTK++.

      So?


      QT is OO by design. GTK-- is OO by kludge.

      > QT 3 gives you access to SQL-databases from its widgets.

      Why?


      To make it easier to build database-driven applications without having to twiddle between two libraries.

      > QT comes with a very good interface builder.
      Use vim.
      > With Kdevelop you have access to a very good IDE.
      Use Vim.


      Look, I love g/vim as much as (or more than) the next guy, but it is not an IDE designed for QT, and it is NOT an interface builder at all.

      > QT based programes feel snappier than GTK based ones.
      Opinionated


      An opinion many people, myself included, share. GTK feels sluggish, slow, laggy. QT actually feels like you're interacting with the program.

      > Furthermore with GTK you definitely write more code to accomplish the same.

      Maybe, maybe not.. and if so, who cares? Maybe some people like to have a lot of options/power at their disposal.


      It's not a matter of options/power, it's a matter of more code to do the exact same thing for no reason. GTK is godawful ugly. I can't speak for QT, but everyone I talk to who's used it agrees. You can do more with less and better.

      Gtk is more commonly used then any other brand.

      That's because when QT started out, it wasn't Free as in Speech, so GTK was used instead. Now, GTK is ugly, bloated, and slow, and QT is fast. KDE still sucks, but QT works, and well.

      Sure it sucks, but it sucks less.

      No, it just sucks in more places at once. MS is more commonly used than GTK, doesn't mean it's better, just that it's more common. Same with GTK. It's better than a lot of options, but it's still #2 in my book.

      Don't get me wrong, I love GTK and I hate KDE, but QT just feels nicer and works nicer, and as much as I'm loathe to, I have to admit that.

      --Dan

    2. Re:Some REAL points by fault0 · · Score: 2

      > Gtk is more commonly used then any other brand. Sure it sucks, but it sucks less.

      And gtk-- is barely used at all.

    3. Re:Some REAL points by bigtoy · · Score: 2, Insightful

      What does having Kdevelope have anything to do with Qt? Regardless of whether you use Qt or gtk based systems you can use Kdevelope. Looks like you are grasping a bit here.

      Why do I care that the widgets provide SQL? I may consider that bloatware and more that I want for my development needs.

      I know lots of professionals that go with products that are open source and not termed "professional" because they are not backed by a company. A good number of professionals use tools that they can modify and see the internals. (Both available for Qt and gtk, so no harm no foul.)

      Qt feels "snappier"? Puh-lease. Lets live in the land of the subjective here. You are obviously lost. Look into the role of the WM.

      BTW, I am not endorsing either product. Just playing the "Devil's Advocate". I hate to see biased, pointless, not clearly thought through arguments used to push someones view.

      --
      "A sample size of one is really just statistical masturbation."
    4. Re:Some REAL points by JimMcCusker · · Score: 3, Insightful

      >> QT is C++ from the ground up, GTK-- is wrapping GTK++.

      >So?

      So QT is also well-written C++, which means it's much easier to write for. C++ wrappers over C libs almost always end up having to deal with Cisms that aren't an issue when using C++.

      >> QT 3 gives you access to SQL-databases from its widgets.

      >Why?

      Because if you want any company that is developing internal applications to use QT instead of VB, it had better have direct access to SQL databases, because about 90% of "enterprise" apps are souped-up database forms strung together in a meaningful manner.

      >> QT comes with a very good interface builder.

      >Use vim.

      And painters should write down specific instructions for a machine to render their paintings. I'm sorry, but being a UI designer, I'd say that most of us, when designing UIs, think visually, not textually. This isn't better or worse, just different. I use emacs and the command line whenever I'm developing backend code, but any time I need to develop a UI, I need to see it, and I'll be damned if I'm going to wait even 3 seconds for a program to compile and run if all I'm doing is checking if I got the constraints on some widget set right. It just interrupts the flow of work.

      >> QT based programes feel snappier than GTK based ones.

      > Opinionated

      Yes, but valid. The response time of a UI is crucial to user acceptance. Anything that takes longer than 1/10th of a second is not instant.

      >> With Kdevelop you have access to a very good IDE.

      > Use Vim.

      See above. Kdevelop also makes it easy to set up automake/autoconf build methods, even for people who aren't familiar with them.

      >> Furthermore with GTK you definitely write more code to accomplish the same.

      >Maybe, maybe not.. and if so, who cares? Maybe some people like to have a lot of options/power at their disposal.

      I care. My time is valuable, and it takes me the same amount of time to write 100 lines of QT code as it does 100 lines of GTK code. If I can get more done with 100 lines of QT code, guess which I'm going to use? The best situation is where the library gives you access to powerful abstractions (like QT does), but then also gives you access to lower level details if you need it. There's nothing to slow you down like dealing with details that don't even matter.

    5. Re:Some REAL points by fault0 · · Score: 2

      > Name one.

      Uhm, gtk--?

      > Just as many people have the exact oposite opinion, QT is a piece of trash on MY system, while Gtk runs really snappy.

      Both run pretty snappy here. People who say "GTK is faster than Qt" and "Qt is faster than GTK" are pretty much trolls. Both are about the same speed.

      > Anjuta DevTools is easily as featureful as nice as KDevelop. http://anjuta.sourceforge.net/ Glade is a terrific GUI builder.

      Anjunta's cvs version isn't as advanced as KDevelop's cvs version. Although Anjunta's cvs version seems to be less broken at this time than KDevelop's (I've tried both within the last month).

      You might want to try Qt Designer as well. It's the Qt equivalent of Glade, but has a pretty nice code editor in version 3 :).

    6. Re:Some REAL points by Jeremy+Erwin · · Score: 2

      QT is C++ from the ground up, GTK-- is wrapping GTK++. Correct me if I'm wrong, but neither "signal:" not "slot" are C++ constructs. You still have to use the moc utility to translate your code into standard "C++". QT is C++ only to the extent that "Objective C++" can be considered C++.

    7. Re:Some REAL points by Wavicle · · Score: 2
      Why do I care that the widgets provide SQL? I may consider that bloatware and more that I want for my development needs.

      You may not care. Many application developers in the world need both rapid development and database access. This feature is something they would care for very much. Yours is a poorly thought through argument.

      Qt feels "snappier"? Puh-lease. Lets live in the land of the subjective here.

      He was being subjective, so are you.

      You are obviously lost. Look into the role of the WM.

      If the same functionality under the same WM has a feel of faster feedback with a Qt application than with a GTK-- application, that kind of eliminates the role of the WM, doesn't it?

      --
      Education is a better safeguard of liberty than a standing army.
      Edward Everett (1794 - 1865)
    8. Re:Some REAL points by Wavicle · · Score: 2
      If I understand correct, the other poster talks about database access from visible GUI elements. This is insane, by my book. Having an embeddable database viewer component is probably a good thing, but bolting it into library widgets is perpetrating unnecessary bloat.

      The original poster was slightly mistaken. Qt 3.0 has a few SQL enabled widgets in its new SQL module library. see trolltech.

      An object-oriented database layer can be helpful though, for you weaklings, hehe.

      [...]

      Sorry, but you're a fucking troll.

      hmmmmm....

      --
      Education is a better safeguard of liberty than a standing army.
      Edward Everett (1794 - 1865)
    9. Re:Some REAL points by elflord · · Score: 2
      A GUI toolkit, like any library, should allow its objects to be created on the stack or on the heap.

      Why ? What are the benefits of allowing this ? Having Qt widgets created on the stack simply does not make any sense, because an object created on the stack is destroyed when it goes out of scope. This is not sensible behaviour for a GUI program.

      In the few cases where it does make sense (eg temporary dialogs), you can create the object on the stack (because the dialog is unparented)

      QT does not. I don't see that as a feature.

      Name just one concrete disadvantage of this. And explain why the disadvantage outweighs the benefits of having a consistent memory management policy (so you don't have to remember which widggets are managed and which aren't)

  15. Mozilla? by dannyspanner · · Score: 3, Insightful

    I'm not trying to sound stupid or off-topic here, but have you considered Mozilla? Beyond ther browser, they've developed a really interesting cross-platform C++ (and JavaScript) development platform. For a start there's a cross platform implementation of COM and you can develop your UI's in an XML dialect called XUL.

    1. Re:Mozilla? by Grab · · Score: 2

      When running Mozilla on my old P233, I could literally see the space for a menu blocked out, then the lines of text for menu options drawn to the screen one after the other. The only other time I've experienced anything with a user interface this slow is when I'm running X applications on servers in the States from our offices in the UK. Mozilla is simply unacceptably slow.

      Grab.

  16. New GTK+ by JanneM · · Score: 4, Informative

    Don't forget that an all-new GTK+ version is just coming out, a cleaner design, vastly improved i18n support, and all. I suggest you look at GTK2 (and it's C++ wrappers) as well, as this is what's going to be used, rather than the current version.

    /Janne

    --
    Trust the Computer. The Computer is your friend.
    1. Re:New GTK+ by elflord · · Score: 2, Insightful
      Don't forget that an all-new GTK+ version is just coming out, a cleaner design,

      If they're redesigning the toolkit with every major release, that's a bad sign. Qt has not changed substantially since 1.x, the main difference is that functionality has been added to a rock solid infrastructure.

      BTW, when is the GTK documentation going to be available ? IMO if there isn't any documentation, it doesn't even deserve to be called "1.0".

  17. Well.. by DGolden · · Score: 2, Insightful

    Geez. Talk about flamebait topic. Personally (and personal opinion only, here), I'd say, Qt is better designed, clearer, and easier from a programming standpoint - but it's actually not clean C++, what with its dodgy signals/slots stuff, that gtk-- manages to do within the bounds of the language.

    If you're writing commercial, proprietary software, then you have to pay to use Qt - but Trolltech provide a thoroughly professionally supported toolkit to you for your money.

    The Qt class library is actually more akin to the standard set of Java classes than just a widget set - there's decent cross-platform support for sockets, xml, threads, unicode, etc. It really makes C++ programming very easy.

    OF course, there's other cross-platform C++ tollkits like FLTK... The gui toolkit page lists many more.

    --
    Choice of masters is not freedom.
    1. Re:Well.. by MSBob · · Score: 2
      Also, FLTK in win32, launches a DOS box with every

      That's purely a command line switch to the compiler. You can compile FLTK so that it doesn't do that. But I agree with you about the sparse widget set aspect of it.

      --
      Your pizza just the way you ought to have it.
    2. Re:Well.. by joss · · Score: 2

      Agreed - the widget set is not huge. Then again, I've never encountered another toolkit where writing your own low level widgets was as easy.

      QT comes 2nd IMNSHO. Better widget set, but not as fast or flexible.

      As for the DOS window - do shut up, your ignorance is showing. Compile the 50 or so
      example programs that come with fltk in release mode and observe the lack of any dos windows. For those too slow to type "fltk dos window" into google:

      > For MSVC++ the switch to the linker is:
      >
      > /SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup

      --
      http://rareformnewmedia.com/
  18. If internationalisation matters... by tempfile · · Score: 3, Insightful

    ...go for Qt. Gtk, IMO, has the huge disadvantage that the current 1.2 revision doesn't support Unicode, whereas Qt fully relies on it and even provides GUI-independent helper classes for all kinds of Unicode conversion that you can use anywhere in the program. This would also help for the mathematical symbols that you probably want to display. It looks like Gtk2 will use Unicode and Pango, thus potentially blowing away the competition, but as long as there's no stable version of Gtk2, I'd go for Qt.

    1. Re:If internationalisation matters... by fault0 · · Score: 2

      > It looks like Gtk2 will use Unicode and Pango, thus potentially blowing away the competition, but as long as there's no stable version of Gtk2.

      However, Gtk2's win32 port will likely remain a very unsupported port. While qt's win32 port is as important if not more important (because of commercial licenses), than their X11 port.

  19. I switched from Gtk-- to Qt by Per+Abrahamsen · · Score: 3, Insightful

    From a conceptual point of view, I like Gtk-- better. It actually uses the modern C++ language, including the C++ type system. This way you avoid the need for a preprocessor, and get static typechecking instead of "dynamic typechecking" (i.e. "the user does the checking"), which is the entire point of using C++ in the first place. It also use the standard C++ library instead of duplicating it poorly, so you don't have to deal with multiple string types and the like. Since the application is a GUI frontend to a library written in standard C++, using the standard C++ library classes, this matter a lot. Qt is written for an ancient subset of C++, something closer to "C with Classes" than the C++ standard.

    However, Qt is simple to use, well documented, and have stable API's. In practice, these make it much easier to use than Gtk--.

    As an extra plus, Qt is GPL and therefore more gnulitically correct than Gtk--, which is only LGPL.

    1. Re:I switched from Gtk-- to Qt by Dr.+Evil · · Score: 3, Informative

      As an extra plus, Qt is GPL and therefore more gnulitically correct than Gtk--, which is only LGPL.

      The LGPL was written specifically to get around the 'viral' aspects of the GPL. Meaning that while Gtk-- gives you the option to GPL your product, QT does not. With QT you MUST use the GPL... unless you pay Troll Tech an arbitrary, although currently quite reasonable sum.

    2. Re:I switched from Gtk-- to Qt by Dr.+Evil · · Score: 2

      I'm not saying that Stallman wouldn't like it. But isn't it ironic that the GPL is being used as a tool to create a market for the commercial version of the toolkit?

      As an end-user however, QT is superior. I've tried to learn Gtk--, but I couldn't wrap my head around the lack of documentation and the obtuse artifacts left over from the C origins of Gtk+.

      I hope they clean it up. The next time I delve into it, I will be trying to document-as-I-go.

      If somebody can understand how to create a reliable and quick UI in pure C, that's good for them. I can't touch it until it is wrapped in C++, and I am not skilled enough to do it myself. I really think you need somebody who eats, sleeps, dreams and breathes both Gtk and C++ to be able to write an effective wrapper.

    3. Re:I switched from Gtk-- to Qt by elflord · · Score: 2
      Of course, moc doesn't have all of these problems but it does do a significant amount of translation not visibile to the compiler.

      I don't see how this is a problem in practice. I've made heavy use of Qt, and generated code hasn't made life any more difficult or confusing.

      That said, moc was a fine solution to the C++ compiler problem back in its day. At this point, most compilers can handle the template code necessary to implement signals and slots within the language.

      But why templates ? I suppose they might make people with a strong aversion to preprocessors feel better. There are a lot of potential pitfalls with templates (static typing, tight coupling, etc), so I'm sceptical.

      Well, they do parts of it. std::string is a fine string class.

      But most compilers don't ship a unicode version.

      As for containers, one can have containers of pointers in the std C++ library provided they are wrapped in smart pointers like Boost's shared_ptr.

      Reference counting is a terrible choice of memory management policy for GUI programming. The problem is that you are likely to get a lot of reference cycles in GUI programming (child widgets that know their parents being the obvious one, though there are less obvious ones also). Simply put, you don't want to have everything that knows a widget to have partial ownership, because for each widget, there is a natural owner -- the parent widget. The policy Qt uses, where parent widgets manage their children is much smarter. Keep in mind the kinds of problems Qt is trying to solve. For what it's trying to do, a reference count based memory management strategy isn't very effective.

      The "template bloat problem" should really be called the "template implementation problem." It's only because most std C++ library implementations follow the original SGI offering that we have bloat problems.

      Yes and no. Template bloat is a fundamental problem with templates. You're right that the std library could be implemented better than SGI's version. Metrowerks already ship a std library that uses void* for pointers, only creates one instance of the tree balancing code in the map/set implementations.

  20. QT forces non standard c++ use by Charley's+Angel · · Score: 2, Interesting

    The big difference is that gtk-- is based on the C++ standard library, and so allows you do use familiar and efficient constructs like std::vector, std::string and so on.

    QT has reimplemented all those things as a rather dodgy set of proprietry classes, which lock you into, for example using QString rather than std::string throughout your application, or doing a lot of extraneous conversions every time you need to talk to the GUI.

    In its favour, QT does have much better documentation than gtk--, but all the same, I prefer the standards based gtk--.

    1. Re:QT forces non standard c++ use by fault0 · · Score: 2

      > I don't think that is really in the remit of a gui toolkit at all.

      It's an application framework.

      > QT has reimplemented all those things as a rather dodgy set of proprietry classes.

      Dodgy? How do you figure? They are very high quality, and are actually more cross platform than many std:: classes are. Ever try to compile large non=Qt C++ code in HP/UX with quite broken compilers? I have, it's not pretty.

      Besides, if you knew anything about Qt, you'd see that Qt3 has stl support.

    2. Re:QT forces non standard c++ use by Unknown+Lamer · · Score: 2

      When it comes to QString it is far superior to std::string since it is unicode which is really a boon when writing internationalized application.

      std::wstring is generally (?) Unicode. And, you can always write your own char_traits for Unicode if you want.

      --

      HAL 7000, fewer features than the HAL 9000, but just as homicidal!
    3. Re: QT forces non standard c++ use by elflord · · Score: 2
      Unfortunately, Qt's approach is not a good one. First of all, it really doesn't end up saving code size, since for most applications you'll want to have all of the basic container methods inlined anyway. And if they don't get inlined, then you pay a performance penalty.

      You're sort of right. There's no free lunch, there's a tradeoff, which is to sacrifice inlining for a reduction in template bloat, and coupling. I disagree that one wants everything inlined for "most applications". For applications that involve containers of pointers of widgets, the extra indirection does not pose an enormous problem (you are already choosing indirection by using pointers and not values) IMO performance bottlenecks in a GUI application are more likely to appear in drawing methods, network overhead, and back-end computation. I've never found looking up a widget in a list to be a performance bottleneck in a GUI application.

      Qt does have value based containers for the rare occasion that you simply can't afford the indirection of the pointer based containers.

      If the object in the container inherits from multiple base classes, you are guaranteed that multiple pointers to the same object (of different pointer type) will have different values on almost all C++ platforms. When you cast from derived to base class type, the compiler adjusts the pointer value if necessary to ensure that it's pointing to the right vtable.

      I don't see why this is a problem. The exposed interface does not accept void* pointers, it would only accept base class pointers. The derived to void class never happens. You get a derived* to base* conversion (because the function prototype wants type base*), then a base* to void* conversion. I agree that it would be a problem if the exposed interface accepted void* or derived* pointers though.

      BTW, this idiom isn't terribly revolutionary. Stroustrup recommends it, Lakos (large scale C++ design) recommends it, and Metrowerks actually use iit to implement pointer classes in their STL.

      So when multiple inheritance is involved, you can easily take a pointer of derived class type, cast it to void*

      No. The derived pointer would get converted to a base class pointer first.

      Cheers,

    4. Re:QT forces non standard c++ use by fault0 · · Score: 2

      std::wstring is missing in some C++ implementations, particulaily a few commercial UNIXes

  21. Easy! by zensonic · · Score: 4, Funny

    Qt is 3.0

    Gtk is 1.2.x

    Sure it's friday, but come on, thats easy 3.0>1.2, so the choice must be Qt!

    Same reasoning shows that Windows 2000 are MUCH better than Windows 98 which in turn is slightly (by 3 point) better than Windows 95, which again are MUCH better than windows 3.11.

    Sigh. Does you youngsters not learn anything today?

    --
    Thomas S. Iversen
    1. Re:Easy! by damiam · · Score: 4, Funny

      So Mozilla build 20012311 must be the best piece of software ever made!

      --
      It's hard to be religious when certain people are never incinerated by bolts of lightning.
  22. Some points from using Qt. by hpj · · Score: 5, Informative

    I have been using Qt for some years now starting with Qt 1.0 some years ago. I have also tried to both patch GTK+ programs and in one instance port one of my Qt applications to GTK+ (I was preferring gnome at the time).

    The advantages I can see from using Qt is:

    * Superb design. The OO design of Qt is really thought out. There are virtual function to do all the basic things you can think of and if you think of something really clever there are lowlevel routines to do that too.

    * Superb documentation. A comprehensive, hypertext help and in Qt3 an included help browser. This is really an advantage since GTK+ not really being supported by a commercial entity suffer from lots of "I'll rather code than document" in the libraries.

    * Good migration path to new versions. I have a program consisting of ~100000 lines of code (An Oracle client http://www.globecom.net/tora) which I migrated to Qt3.0 in about 2 hours, some of that time was spent using Qt3 specific features also like docked windows where appropriate.

    * Not only a GUI toolkit. It also includes primitives for handling threading, I/O (files and sockets), UNICODE conversions and also some basic template classes made mostly obsolete now that STL is starting to actually work in GCC.

    * Truly multiple platform. The application above was ported to Windows in about a day, all of the problems related to the fact that Visual C++ understands a different dialect of C++ than most of us are used to and that took some time write around, none of it was Qt specific. The extra thread and I/O classes really helps here as well.

    /Mauritz
    GlobeCom AB

    1. Re:Some points from using Qt. by fault0 · · Score: 2

      > Sockets, files, strings, even lists.

      You can use those with Qt as well.

      > Threads

      You can't with most toolkits (with the nature of event queues).

      > QFileDialog

      What's so wrong with QFileDialog? It's a pretty good example of OO-design. It inherits a QDialog which inherits a QWidget which inherits a QObject. That's all very clear and easy to understand. What's so wrong with it?

  23. Re: OS X port by smurfi · · Score: 2, Interesting

    The downside is that QT is slow, which is because they fake all the high-level UI calls with low-level code. That's how you can run a QT program on the Mac, but with Win32 or Motif look-and-feel.

    The HUGE disadvantage is that QT programs will never be as fast as "real" Mac programs, because all the UI stuff (bitmaps for buttons, for instance) will eat up memory space and disk access time. The other programs get the UI for free.

    It's also a practice Apple doesn't like. At all. Remember the Mozilla port?

    There's also the danger that OS X will pick up some new feature, like for instance voice-controlled mouse movement to UI elements or whatever. Every program will magically work with them, except for QT-based programs which will just sit there and look stupid until Troll gets around to update their (closed-source!) Mac port. :-/

  24. Clearly an unfair comparison... by pastie · · Score: 4, Funny

    ...as everyone knows that the software with the highest version number is obviously the best.

    (Score:-1, Sarcastic)

  25. If you want better cross platform support.. by MongooseCN · · Score: 3, Insightful

    ..make your application interface independant. The idea is to make your program a basic application that can run without a gui. The gui is then a plugin or something. That way you can take one application and write a gui using gtk, QT, win32, whatever you want and never have to rewrite the application. This is how licq works. The licq application is stand alone and you can download interface plugins for it, QT plugins, gtk plugins even command line plugins. This is great for me since QT doesn't run on the platform I use, so I have to use the commandline plugin.

    Don't lock yourself into one gui and hope that it will cover all the platforms you need, most of them don't. Allow any kind of gui to work with your program, not only is it more cross platform compatible, but other people can create guis for your application without ever have to touch the applications code.

    1. Re:If you want better cross platform support.. by Sentry21 · · Score: 2

      This is a good idea, but a plugin interface might be more than you need if the interface is going to be your only plugin.

      A better idea might be to use #defines and #ifdefs and other magical compiler directives, write some wrapper functions if necessary, and then at compile time, decide which toolkit you're compiling for.

      #define TOOLKIT gtktk
      #include

      Or something of the sort.

      --Dan

  26. GLOW, cross-platform toolkit for 3D apps by Animats · · Score: 2
    Lately I've been using, of all things, GLOW. GLOW is a cross-platform toolkit built on top of OpenGL and GLUT. The internal architecture is sound, but the widget set is sparse. I've had to fix a few problems in GLOW, but nothing serious. GLOW is on SourceForge.

    GLUT, the widely used cross-platform wrapper for OpenGL, has problems when used in a multi-window application, and those problems affect GLOW programs. I've been documenting the problems and sending them to the current maintainer of GLUT, and they may eventually get fixed. Supported platforms are Win32 and X.

    These alternatives are only useful if you're writing a 3D application. Otherwise, use one of the 2D toolkits.

  27. Re:Licencing... and support by SpinyNorman · · Score: 2

    I think Qt comes out ahead on the free/licensing issue; if you want to use it for free software, then Qt is GPL'd, but if you want to use it for commercial software you need to buy a licence - but most importantly that also brings you commercial support. In either case you have the source so that you can fix bugs or figure things out for yourself, but if you're working on a commercial project and under deadline pressure it's nice to have that commercial support available.

  28. My company went through this... by cjhuitt · · Score: 5, Informative
    About a year ago, the company I work for went through this. (This was before I worked for them.) The company debated the merits of Gtk-- and Qt. The basic conclusions were that Qt would (or at least, should) have the better support and documentation, and lack minor irregularities. However, when it was all computed, the deciding factor was the licensing fees. Since our software would be quasi-commercial (we are a consulting company, but for a fee, we provide companies with portions of our software as well) we would have to pay the licensing fee for Qt. This was a lot more than was thought our ~6 person (at the time) company could afford, so we went with Gtk-- pretty much only for that reason.

    Now that we have been using Gtk--, we have relatively few regrets. The documentation was poor, for a time, but they have semi-recently improved the documentation, and it is quite workable. There are some small things that you would think would be done differently, but overall they are very minor and easy to live with.

    Since we aren't concerned (yet) with porting our software, that wasn't much of an issue. Of course, your situation may be different there.

    Finally, echoing what other people have said here, Gtk-- can be quite low level at times. I would recommend that if you decide upon Gtk--, you do what our company has done. We created our own set of libraries that provide standard looks to things with minimal hassle, derived from the Gtk-- classes. An example of this would be windows. We have our own window class that sets up standard options that Gtk-- allows to vary considerably. (Additionally, it automatically checks for certain keystrokes, like the F1 key, and signals that fact.) Making a button class would be similar, so all of your buttons are approximately the same size, have the same shading, etc. We were late in figuring this out, but it has greatly simplified our code and made our program look much more consistent.

  29. Re: OS X port by fault0 · · Score: 2

    > The downside is that QT is slow,

    No, in fact, quite the opposite is true. It'd be faster than solutions that simply wrap around native API calls.

    It is like in the Java world between AWT (Java 1.0.x) and Swing (Java 1.2.x). AWT tried to simply wrap around the native toolkits. As a result, it was quite slow. Swing does it like Qt, and provided an API for drawing widgets, much like Qt does with QStyle.

    > eat up memory space and disk access time.

    I think they alleviated this by using QPixmapCache. It should be only a tad bit slower, if not the same speed as regular OSX apps. Either way, an user would not know the difference in speed.

  30. Dr. Dobbs articles. by bigtoy · · Score: 2, Interesting

    Al Stevens provides a column in Dr Dobbs Journal titled "C Programming". In the Sept-Oct 2001 columns he described issues he ran into testing both the Qt and GTK-- class libraries. I do not have the articles here but Al gave some pretty good C++ aesthetical reasons for staying away from Qt. Specifically he mentions having to re-compile some of the Qt libraries so that he could extent their class to properly convert from a STL String to their Qt string class.

    He had many other reasons for not using Qt. When I get back to work from this long holiday I will post an outline of his specific reasonings.

    Just to clarify. I am not an Al Stevens "fan". The man really seems off his rocker sometimes. However, the articles on Qt and GTK-- were very informative. And yes, I did investigate a few of the items for myself. (Do not trust my word though, get the article, read the article, try it out for yourself!)

    --
    "A sample size of one is really just statistical masturbation."
  31. Links: by Futurepower(tm) · · Score: 2


    GTK

    QT


    Post Comment Lameness filter encountered. Post aborted! Reason: Don't use so many caps. It's like YELLING.

    --
    Bush's education improvements were
  32. Re:Licencing... NOT by mughi · · Score: 2
    I think Qt comes out ahead on the free/licensing issue; if you want to use it for free software, then Qt is GPL'd, but if you want to use it for commercial software you need to buy a licence


    Actually, this is one point where Qt comes out way behind. Gtk++ is LGPL, which frees you to build commercial apps using it with no cost. Qt has a very infectious license where if you at any time use a free version of Qt on your project, then you can never release your project commercially.



    And Trolltech dismisses shareware completely. They consider it to not be a viable approach, and so Qt can't be used for it.

  33. I have experience with both... by MSBob · · Score: 2
    and some other toolkits too. Each one has its distinct advantages although if I were to make such a decision it would be a no-brainer to go with Qt. Gtk-- lacks documentation, seems to have an inconsistent API which is still in a state of flux (not good when you're trying to write an app with it that has a definite deadline on it).

    Others wrote there are other toolkits as well but IMO they are nowhere near the usability of Qt. The often mentioned wxWindows is a wrapper around native widgets meaning that things like widget alingment issues become a pain in the butt as each platform will have widgets drawn in their native size. Also widget toolkits that wrap native widgets are diffucult to extend (by class derivation) so if you need to create your EnhancedComboBox from their ComboBox it's sometimes difficult to accomplish with wrapping toolkits. Personally I think going with an emulating toolkit is better than using a wrapping toolkit (fewer headaches). If you don't agree think for a minute why Swing in Java is considered an improvement over AWT. Same reasons.

    FLTK is sweet if you don't need advanced widgets and i18n. They finally got their issues with keyboard focus fixed so it begins to look more and more like a real alternative. However, they use char* for text handling all over the place so it's certainly a disadvantage if you need unicode support. However, it is small and it is fast but it's only good enough for simple UIs.

    You can't go wrong with Qt it gives you the power of something like MFC in a more digestible form with cross platform portability to boot! Also the sheer number of widgets available for it is pretty amazing. Oh, and the slot/signal thing isn't half as bad as some people here make it out to be.

    1 vote for QT here.

    --
    Your pizza just the way you ought to have it.
    1. Re:I have experience with both... by Graymalkin · · Score: 2

      I thought Havoc Pennington's book on GTK+ was pretty good documentation. It's called GTK+/Gnome Application Development and published by New Riders IIRC. I picked it up for 14.95$ and have found is very useful.

      --
      I'm a loner Dottie, a Rebel.
  34. GTK-- is not GTK+ by marble · · Score: 5, Interesting

    A lot of people seem to have missed that the question was asking for opinions on GTK-- (now gtkmm), not GTK+. The difference being that gtkmm is the C++ interface to GTK+, so no C vs C++ dilemma exists here - both are C++.

    Well, nearly. If you're from a standard C++ background (as I am), you will find gtkmm preferable, as they don't reinvent parts of the standard library (eg QList vs std::list), they use namespaces and templates (including giving familiar, STL-style interfaces to container widgets etc), and it's implemented entirely in C++ (whereas Qt is in a C++ like language that must be first preprocessed to produce C++).

    But, as someone before me said; get both, try them, see which you prefer - there are obviously people who disagree with me, as KDE and Qt are popular.

    1. Re:GTK-- is not GTK+ by ShallowBlue · · Score: 2, Informative
      "[...] Qt is in a C++ like language that must be first preprocessed to produce C++."

      First of all that is a serious exageration! Second it does not matter even if from a esthetical point if view the preprocessing of the headers is not nice. Why? Because the decision for a specific product/venor leads to vendor lock (see Anti Patterns) in any case.

      You rely on a library. Your code will not compile if that library is not there! In the case of Qt you also rely on a little preprocessor program --- so what? If you use GTK or Win32 or MFC that don't need the preprocessor what is the difference? You cannot take your MFC program and compile it using say GTK.

      The only thing you can do is to try to introduce clear layers that separate you program logic from the GUI to contain and localize the damage in case you have to go from one GUI library to another.

      This is also my answer to the criticism that Qt (which was started in pre STL times if I am not completely wrong) uses non-STL containers. Separation of GUI and core program allow you to use more approprate/modern/protable technologies in the core. It is the architect's/designer's/programmer's choice where to use these non-standard constructs and how deep you will move into vendor lock.

      Especially tricky in the case of Qt is that Troll Tech also offers a Qt specific abstraction layer for low-level constructs like threads/locks/sockets, etc. This means that if you are not carefull your software is locked at the top and at the bottom. If these low level services are used I would recommend to wrap them into a platform isolation layer. In the case you want to change you can replace these services using the native OS constructs or libraries like ACE, etc.

  35. Re: OS X port by fault0 · · Score: 2

    Swing was initially much slower than AWT. However, as optimizations were made, it became almost as fast as AWT. If you have used a modern java, you'd know this :)

  36. Re:Licencing... NOT by fault0 · · Score: 2

    > Qt has a very infectious license where if you at any time use a free version of Qt on your project, then you can never release your project commercially.

    Huh, what FUD. Qt has nothing of the sort.

    > And Trolltech dismisses shareware completely. They consider it to not be a viable approach, and so Qt can't be used for it.

    No they don't. If you have a commercial license, you can sell as much properitary, close source shareware as you want. If you use free Qt, you can sell as much of open sourced shareware as you want.

  37. Re:licensing Qt == dangerous by fault0 · · Score: 2, Flamebait

    That's complete bullshit. Qt's commercial license has no clause like that. Only Qt's educational program has something like that, and no one is talking about that here.

    Go away, troll.

  38. Cuz it's crap (examples failed when I tried them) by Szplug · · Score: 2, Informative

    I was examining cross platform GUIs a couple years ago, and gave wxWindows a try; it's ugly (full of arbitrary little macros) and, as the subject says, when I installed it and tried their example programs, some either failed to compile (or more likely) failed to work (my memory is unclear). Overall my impression was that it was a mess. Now, that was 2 or more years ago, but I haven't heard much about wxWindows since. We went with Qt, and it's clean & fast; I prefer it even to MFC (which admittedly may not be saying much).

    --
    Someday we'll all be negroes
  39. Re:Qt Locks You In by fault0 · · Score: 2

    > Being locked in like that tends to negate the whole reason for going with Linux in the first place.

    You're neglecting the fact that he's not just working with Linux/X11, but rather a variety of platforms.

    > which is completely open source (LGPL)

    RMS himself considers the LGPL to be less open sourceed than the GPL. In fact, he really discourages use. Qt is more pure open sourced in X11.

  40. GTK--/Qt are not the only choices by VZ · · Score: 3, Informative

    [disclaimer: my real email address is @wxwindows.org]

    > Not supprisingly we've come up with two choices,
    > GTK-- and QT.

    This surely is surprizing to me. I wouldn't consider GTK-- a serious choice for writing Win32 programs - sure, it "works", but have you seen it and/or used any GTK+ programs under Windows? But I would consider FOX, FLTK and wxWindows as serious contenders to Qt.

    I can't speak of the others but let's compare wxWindows and Qt:

    1. wxWin has almost all of the features Qt has
    (it doesn't have some, but then it has some extras)
    2. wxWin is free (as in beer too) for all uses
    3. wxWin has native LNF, even under Windows XP
    (which can be a serious advantage if you
    target this platform).

    But try it for yourself - wxWindows 2.3.2 is scheduled for Dec, 2 and has quite a few interesting new features. And see www.wxwindows.org for more info.

  41. More complete list of links: by Futurepower(tm) · · Score: 5, Informative


    GTK:
    GTK

    QT:
    QT
    Excellent QT Tutorial

    wxWindows:
    wxWindows
    wxPython

    Mozilla:
    Mozilla
    Cross-platform implementation of COM
    develop your UI's in an XML dialect called XUL

    Others:
    FLTK
    Fox Toolkit

    Side-by-side comparison of GUI Toolkits:
    The GUI Toolkit and Framework Page

    I needed this list for my own use. Maybe it will be of interest to you.

    --
    Bush's education improvements were
  42. Re: OS X port by fault0 · · Score: 2

    no, I said that the diffence in speed between Swing and AWT can't be felt anymore.

  43. Gtk+ on Win32 is NOT a one-man job by Xiphoid+Process · · Score: 2, Insightful

    It is a officially supported first-rate platform being developed in the main Gtk+ CVS tree.

    --
    got drum'n'bass?

    http://mp3.com/vitriolix
    1. Re:Gtk+ on Win32 is NOT a one-man job by fault0 · · Score: 2

      Uhm, does GTK-- run on Win32? Last time I checked it didn't.

  44. So Qt tries to become QT? by yerricde · · Score: 2

    it also is a cross platform development platform. So it provides cross platform facilities for many activities - file access, sockets, database access

    Just MySQL and PostgreSQL, or does it also talk to common proprietary DBMS such as oracle, sybase/mssql, etc?

    printing, font handling, Unicode and internationalisation

    How big does a distribution have to be to include glyphs for all 50,000 or so Unicode UCS-2 characters?

    preference handling, XML support including SVG, various image formats

    How much of the price of a Qt license covers the Unisys royalty for a popular "various image format"?

    regexps, data and time classes, multimedia classes

    Multimedia as in video playback? Is Qt trying to become like the other QT?

    Does it handle press/release semantics for keypresses, or just press/repeat? Does it handle joysticks (erm, "industrial control devices")? Does it handle reading mouse motion not limited by the four walls of the screen (necessary for object manipulation in a 3D environment)? Does it handle sound?

    Yes, I'm getting into the domain of Allegro or SDL, but only to show that Qt isn't the be-all and end-all of application toolkits.

    --
    Will I retire or break 10K?
    1. Re:So Qt tries to become QT? by fault0 · · Score: 2

      > Does it handle sound?

      Yes it does.

      > Yes, I'm getting into the domain of Allegro or SDL, but only to show that Qt isn't the be-all and end-all of application toolkits.

      Allegro and SDL aren't application toolkits.

  45. Re:Use QT by fault0 · · Score: 2

    > QT is nearing version 3

    Qt3 was already released over a month ago :0

    > Qt is mfcish

    I don't think so. I find wxWindows much more mfc-ish.

    But I agree with the rest of your post, use Gtk+ if you like C and Qt if you like C++. gtk-- is a rather poor hack. hopefully inti will be much better :)

  46. Re: OS X port by fault0 · · Score: 2

    And awt was slower/had less features on some platforms than others. I distinctly remember awt on MacOS being much slower than on windows, and not even using the System8 Toolbox calls, but rather using very antiquated calls.

  47. Re:Qt Free needs X11 by fault0 · · Score: 2

    No that's not true.

    Heard of Qt non-commercial on windows?

  48. ACtually, Gtk2 *is* designed for Win32 by Sleepy · · Score: 2

    Well, sure there is a difference between "designed for" and "ported to" (tho for some "designed for" means "press release for").

    GTK 1.x was always portable -- designed so -- because the GDK was an abstraction layer that allowed porting to nearly anything someone had a desire to port onto (win32, framebuffer, whatever). I've used GTK under Python, and while it's slower than native Windows UI, it's more than acceptable for GIMP.

    This fellow really needs to prototype some stuff using *each* of the closest candidates. If his schedule does not include time for prototypes, the software will be ready for a code rewrite MUCH sooner than they expect. I do Software QA, and I've seen the effects of rushing a project without proper homework up front. You *always* throw away some code, like it or not...

    >However, Gtk2's win32 port will likely remain a very unsupported port.

    Opinion presented as fact. There are *many* projects using GTK on Windows... just like there are many Qt projects on Windows. They're just ot very prominent (aside from GIMP).

    .. And from what I read on the mailing lists, GTK 2.0 will be "officially supported on Windows (whatever that means), and the rendering rewrite has eliminated that "slow redraw" problem of GTK 1.x.

    Cheers..

  49. GTK+ and Objective C by Nicopa · · Score: 2, Interesting

    As it was mentioned before (and many times) GTK+ is coded in C, but is still object oriented. It uses an ad-hoc object system with dynamic typing, single inheritance. It's clean, but it's rather clumsy looking. If it had some kind of pre-processor it would look much nicer... wait! that would be just objective C! Wouldn it be nicer to have implemented gtk in Objective C? Just a random thought..

  50. Try FLTK by Taco+Cowboy · · Score: 2, Interesting



    Try FLTK { www.fltk.org }

    You won't be disappointed with the Fast and Light Tool Kit.

    For download, go to ftp://ftp.fltk.org

    --
    Muchas Gracias, Señor Edward Snowden !
  51. Try ZooLib - C++, multithreaded, MIT License by goingware · · Score: 2
    Try ZooLib. It is written in C++, it's multithreaded, and it is released under the MIT License (same license as XFree86).

    --
    -- Could you use my software consulting serv
    1. Re:Try ZooLib - C++, multithreaded, MIT License by infiniti99 · · Score: 2

      Except that according to the Zoolib page, there is no support for pull-down menus? Come on now, this is a serious project the guy is asking about.

      Gtk is not a cross-platform contender, FLTK is too limited, and Zoolib is unfinished. Perhaps these would be good recommendations for other projects, but definitely not for cross-platform desktop application development. Normally I would recommend free software above others (although Qt is GPL on X11, so it's tough to complain), but in this case the other options are not even viable. Qt has been multiplatform from the start, and stable for years.

      The only real competition for Qt seems to be wxWindows (based on the comments), which I have yet to check out. Even so, with Qt you get commercial support, something you won't find in any of these others. Really, Qt is the obvious choice for professional cross-platform development.

  52. Re:Gtk works for me by fault0 · · Score: 2

    > What if they go belly up or change the licensing?

    Then Qt would automatically be released under the BSD License.

  53. Re:licensing Qt == dangerous by mughi · · Score: 3, Informative
    That's complete bullshit. Qt's commercial license has no clause like that

    No, it's not. All the free licenses have that. non-commercial, free, educational, etc. Check the TrollTech General FAQ

    Q:Can we use the Free Edition while developing our non-free application and then purchase commercial licenses when we start to sell it?

    A: No. The Free Edition license applies to the development phase - anything developed without Professional or Enterprise Edition licenses must be released as free/open source software. [emphasis added]

    That, along with the FAQs, statements, etc. from Trolltech's past seem to make it clear. Go check their site yourself. Perhaps have a lawyer check the mentioned Professional and Enterprise Edition licenses and let us know if you're right and Trolltech is wrong.

    Go away, troll.

    I'm not trolling, just trying to point out issues with the Qt licenses. If you start with a commercial license and never want to ship shareware with it, or if you start with the proper free license of your project and keep it open-source forever, then it's not bad.

  54. Re:Cuz it's crap (examples failed when I tried the by Pete · · Score: 2, Informative
    Hi Szplug (hmm, Tintin fan?)
    I was examining cross platform GUIs a couple years ago, and gave wxWindows a try; it's ugly (full of arbitrary little macros)
    The macros aren't arbitrary, but there are a fair few of them though. I guess there are a few techniques you can use to help manage event handling - Trolltech uses C++ extensions, wx uses macros. Once you get used to them, it's not really an issue.

    and, as the subject says, when I installed it and tried their example programs, some either failed to compile (or more likely) failed to work (my memory is unclear).
    I've only been using wxWindows for about a year, so I can't really comment on how easy older releases were to get working. But I can say that the current ones work fine - if you're willing to give it another go sometime, you may find life a lot easier.

    Overall my impression was that it was a mess. Now, that was 2 or more years ago, but I haven't heard much about wxWindows since.
    It's not a mess. It's not as slick and nice as Qt, but it's very stable and reliable and certainly not a mess. And while the wx documentation is solid and perfectly usable for a capable C++ programmer, it's not as complete or as well-written as Trolltech's Qt documentation. I still mention the Qt documentation to co-workers as an example of what tech documentation should be - I've never seen anything to match it.

    We went with Qt, and it's clean and fast; I prefer it even to MFC (which admittedly may not be saying much).
    *grin* Indeed it is not. But yes, Qt is a very very nice GUI library ... and not just GUI either. Doxygen is a good example of an application that for a long time used Qt even though it (Doxygen) didn't have a GUI - just because the cross-platform abstractions were so useful.

    I certainly wouldn't recommend you change from Qt to wxWindows... I do think Qt is technically superior to wx, but there are reasons why you might find wx more appropriate for future projects with different needs. Try installing wxPython and have a look through the demo app - I find this a great way of showing off the features/functionality/look/feel of wxWindows to people, even if all the demo apps are written in Python. You can get a good feel for the way the same apps would look in C++ even if you don't know much about Python.

    Pete.

  55. Re:Some _REAL_ points by GiMP · · Score: 2, Troll

    Yes, vim is just a text editor. Which is exactly my point. You have an application for each function you need to do, and thats it. No bloat, no mess.

    Why would I want an app to do my Automake/Autoconf stuff? So I can spend days debugging it? So I don't learn anything and become dependant clicking a mouse? Its so easy to click those buttons in Kdevelop when I'm ssh'ing to my application server.

    I must admit that I've never used Gtk--, as I don't write code in C++. I have written code with Gtk+ and Gtk-perl, and I found it quite easy and enjoyable.

  56. Some REAL babble (was Re:Some REAL points) by Pete · · Score: 2, Insightful
    > See above. Kdevelop also makes it easy to set up
    > automake/autoconf build methods, even for people
    > who aren't familiar with them.

    Those people have no business doing software development.
    Um... yeah, riiiiight.

    There are lots of things in the world of software development. Lots of languages, lots of miscellaneous helper tools. Lots of IDEs. I've never used automake/autoconf in my development career, and I've never needed to. Hard as it may be for you to believe, autoconf/automake familiarity is neither necessary nor sufficient to be a good software developer, in C++ or any other language.

    I also reckon that you believe WYSIWYG "html editors" have a place? Maybe for my 10 year old female cousin, but not for anyone else. Yet again, they shouldn't play the game if they are afraid of the ball.
    I get the feeling you'd say that a UNIX sysadmin who wasn't familiar with (and confident enough to modify directly) /etc/sendmail.cf has no business doing UNIX system adminstration either. Even if they were adminning a system without sendmail running? Hmmm.

    Personally, I actually do think that WYSIWYG "HTML editors" have a place. I also think applications like Lyx have a place. It's just a shame that at the moment there aren't any standout contenders in the HTML side that focus on generating standards-compliant HTML (at least as far as I know, I'd be happy to be corrected on this point).

    As an aside, is there any particular reason you say "my 10 year old female cousin," rather than just "my 10 year old cousin" or "a 10 year old child"? Are you trying to imply that she's doubly disadvantaged in being ten years old and female? Or perhaps even more disadvantaged in that she's your cousin?

    SQL is a backend issue, there are no reasons for it to be tied into a toolkit.. if so, it is the worst form of bloat.
    I assume you meant to say "GUI toolkit" there... as a statement like "there's no reason to tie SQL into a database toolkit" would seem more than a little bit senseless.

    Hard as this (again) may be for you to believe, but Qt is not just a GUI toolkit. GUI stuff is a large part of it, but not the only part. I mentioned in another comment that I know of one app, Doxygen, that used Qt without using any of the GUI stuff - simply because the author really like the fact that it abstracted the low-level platform-specific stuff so nicely.

    The other major issue with QT is the terrible licensing. It still sucks, and I doubt it will ever not suck. I would never base my software on something that will make it as valuable as a pile of rubbish one day.
    I love it when people say something "sucks" and offer absolutely no explanation as to why they think it sucks. Try. Come on, have a go. Tell us why the terrible Qt licensing system sucks. Lots of other people in this topic have at least made an effort (and in the process demonstrated that they don't know what they're talking about), but I'm sure you can do better than them.

    IDE.. hah, I'd like to see you use Kdevelop on a text terminal.
    Um... yeah... I'd like to see you use Quake on a piece of paper.

    WTF are you babbling about? If you want to restrict yourself to using a text environment, do so. Nothing stopping you. Of course, if you're supposed to be developing a GUI application, you might not be able to test it at all, but I'm sure that doesn't matter for someone like you.

    Have a nickle, get yourself a real computer.
    Gee. A whole "nickle". Thanks.

    Pete.

    1. Re:Some REAL babble (was Re:Some REAL points) by GiMP · · Score: 2, Troll

      A text environment is not a restriction, it is directly oppossite of such. It is the only environment capable of being productive.

      Sure, I can't play quake on a piece of paper.. although I can play it on a terminal.. However, that is not the point. Quake is a game..
      KDevelop is an IDE.

      When you are doing development which doesn't require more then a text editor, why limit yourself to learning a GUI environment? That will be really helpful when ssh'ing to your box or X windows crashes.

      And yes, I assumed that QT is a GUI toolkit because anything more would be terrible bloat. It shouldn't become a library for providing everything.

      I laugh when I hear people who think that pointing and clicking is faster then Vi commands and the power of the shell.

    2. Re:Some REAL babble (was Re:Some REAL points) by Keith+Russell · · Score: 2
      A text environment is not a restriction, it is directly oppossite of such. It is the only environment capable of being productive. (snip) I laugh when I hear people who think that pointing and clicking is faster then Vi commands and the power of the shell.


      When did "the right tool for the job" go out of style?

      I couldn't imagine laying out VB forms in code. It's perfectly natural to build visual user interfaces with a visual tool. Before Java IDEs hit the market, I tried some AWT forms, and I felt like I was working blindfolded, compiling and running every once in a while to see if I was hitting my targets. That may make for good Vaudeville, but it's a major PITA when you're trying to make a deadline. Code-compile-run cycles are no substitute for a proper UI builder.

      Conversely, I'm glad Microsoft didn't follow the route of "wiring" UI components together in the builder. Every IDE that tried such techniques ended up fatally counter-intuitive. Builder for layouts, code for logic. Form follows function. There's a reason modern IDEs work this way.

      If all you're doing is non-visual code, then more power to you. Long live %EDITOR_OF_CHOICE%. But you'll have a very hard time convincing me that clicking a toolbar button and dragging a rectangle on a form is slower than:

      'Probably not right, but I'm trying to prove a point: You don't do VB this way!
      Dim btnFoo As CommandButton
      Set btnFoo = New CommandButton
      With btnFoo
      .Parent = frmBar
      .Width = 1095
      .Height = 375
      .X = frmBar.Width - 90 - .Width
      .Y = frmBar.Height - 90 - .Height
      .Caption = "Long way 'round"
      End With
      --
      This sig intentionally left blank.
    3. Re:Some REAL babble (was Re:Some REAL points) by GiMP · · Score: 2

      I do a lot of backend non-gui stuff. but I do do GUI stuff as well, and when I do.. I type. I don't let anyone write my code for me.

      And I wonder why all the software these days has such stiff requirements, there is no reason that we need anything over a PentiumII or Amd K6 processor.. other then the fact that too many programmers are lazy point and click fools.

    4. Re:Some REAL babble (was Re:Some REAL points) by Keith+Russell · · Score: 2

      What environment are you using? Some IDEs are much better than others at code generation.

      RE: System Requirements: Netscape turned links purple when you moved the mouse over them, and now everything has a mouse-over state. Menus fade, unroll, and slide. Qt added themes to respond to GTK+ themes. Microsoft said "If you can't beat 'em, join 'em" when WindowBlinds got hot. Mac OS X can't do a damn thing without some fancy whiz-bang animation.

      Stuff I wrote in VB was snappy on a 486! Of course, that was when our apps were certified on Windows 3.1 and NT 3.51, which preferred efficiency over eye candy. My code hasn't changed a bit: I ask for a button, I get a button. If the OS needs more CPU power to draw alpha-blended borders and shadows over a textured background and throb every color of the rainbow when the mouse pointer is over it, well shame on the OS. All I asked for was a button.

      --
      This sig intentionally left blank.
  57. Re:licensing Qt == dangerous by ecampbel · · Score: 2

    Please mod parent UP, and mod grandparent down. mughi's original comment was unjustly robbed of karma. QT's strange licensing restrictions need to be brought to light.

    --

    Sig goes here
  58. Re:Does it have to be C++? by Sludge · · Score: 2
    an extremely fast Pascal compiler that compiles thousand-line apps in literally seconds

    I'm sorry, but is that supposed to be fast? Compilation is mostly about header files unless you are using pch.

  59. Re:licensing Qt == dangerous by fault0 · · Score: 2

    uhh, that was valid a few years ago, but not now.

  60. Re:licensing Qt == dangerous by mughi · · Score: 2

    Well, that is currently on their website, and not hidden either. They reference all other FAQ's there, and still have it as-is. Their FAQ's were even reved just this past mid-July and then late-September, so there's no excuse on their part. (Oh, and their GPL faq also includes the no-shareware mention)

    If TrollTech has changed their position (and not just made an exception here or there), then the burden is on them to 1) Change their FAQ's that state all this (non-free and no-shareware), and 2) actually put the commercial licenses somewhere that they can be easily accessed.

    If they have changed their terms, then at the least this looks like scare tatics on the part of marketing to try to get more developers to cough up the per-seat licensing.

  61. Re:licensing Qt == dangerous by fault0 · · Score: 2

    1). It's not in the FAQ in their souce code.
    2). It's not enforced. I know of several apps that this case has happened with. For example, Quanta Plus->Quanta Gold, KDE Studio->KDE Studio Gold, Pixie->Pixie Plus.

    So, I think that this is probably an honest mistake on their part for leaving it up in their general FAQ (it belongs in their academic licenseing FAQ).