Slashdot Mirror


C++ GUI Programming with Qt 3

william_lorenz writes: "With the recent release of KDE 3.2 and KDevelop 3.0, and with the forming of the KDE Quality team as mentioned on Slashdot just days ago, it was an opportune time to read my newest book, C++ GUI Programming with Qt 3. (Qt is of course TrollTech's multi-platform windowing toolkit -- Win32, Linux, UNIX, and the embedded space with Qt/Embedded -- upon which KDE is built. There's a free version licensed under the GPL for non-commercial use and also a commercial version.)" Read on for the rest of Lorenz' review. C++ GUI Programming with Qt 3 author Jasmin Blanchette, Mark Summerfield pages 464 publisher Prentice Hall rating 9 reviewer Bill Lorenz ISBN 0131240722 summary A smooth introduction to best practices for Qt 3 application development.

I didn't have to force myself to read this one: the book grabbed my interest from the beginning. It's filled with just enough technical details to whet my technical curiosity, keep me turning pages, and provide the important information, clearly and concisely. I don't have much Qt development experience (none at all yet), although I am experienced in other windowing toolkits. The book quickly provided me with everything I need to know to get up and developing an application, and now I know where to quickly start.

Who's it for? I am of course a novice Qt developer, yet one with a fair amount of IT experience, specifically with other windowing toolkits. I found this book not only a great introduction for those who want to get started with Qt, but it's also a trove of information for somewhat intermediate Qt developers. It's not for people who work for Trolltech or have already been developing feature-rich KDE applications; however, besides providing a great point of entry for new Qt developers, the book does touch on some more advanced topics. Technical books tend to age quickly, but I should note that the book is written by some of the people who brought us Qt 3 and are working on bringing us Qt 4, so this book should have a degree of forward compatibility. What can I expect to learn?

The book is divided into two sections: "Basic Qt" and "Intermediate Qt" development.

The basic Qt section covers everything that someone new to Qt would probably want to learn, beginning with a simple application and an explanation of signals and slots (signals and slots work much the same way as windowing events in Java, for example, and can help to tell when a button or key is pressed). Signals and slots help make the sample application functional. This section also introduces the Qt reference documentation, available online as a reference during development, and Qt Designer, for those who want to use a graphical user interface to create components such as dialog boxes. A quick overview of some of the available widgets is next (widgets are graphical elements such as dialog boxes and buttons), which helps to give someone brand new to Qt development a feel for some of the components that come ready-to-build-upon. This is all covered in the first 38 pages of the book.

I should point out that I think that knowledge of the C++ programming language is essential if one is to learn good things from this book (I'm a big proponent of learning through experience, and you'll need to play with C++ code), but learning Qt and C++ development at the same time might help one come up with some interesting project ideas for learning!

After a quick introduction to creating custom widgets and double buffering (used in some cases to prevent screen flicker), the intermediate section starts by hopping right into layout managers, intended to make graphical forms and components beautiful (and more usable), just like tables helped to make HTML beautiful before CSS came around; layout managers help do for graphical application components what the font and alignment settings do for a word processor. The managers included are very similar to those used in Java's JFC/Swing stuff, and they work well. Also covered are methods for creating 2D and 3D graphics, drag-and-drop, and event processing. Compared to signals and slots, event processing gives the developer more control, and becomes important when writing custom widgets or changing the way an existing widget behaves.

Following this are sections on internationalization, providing online help within an application, multithreading for responsive applications, and Qt's platform-specific features. Qt works with Microsoft's ActiveX, for example, although this apparently requires the Qt/Windows Enterprise Edition as opposed to the free edition of Qt. It's important to point out that Qt implements its own threading capabilities, and the section on threads covers this in depth.

Conclusion

This is a great book for those interested in Qt and KDE development, cross-platform C++ graphical application development, and just making beautiful, functional applications. The book provides information that can't be had from the Qt API alone, and it does so in a way that kept me turning pages. Blanchette and Summerfield organized their text well, with logical chapters that make finding tips for that first application possible. This book gets twelve thumbs up from me.

Bill Lorenz is Vice-President of the Linux Users Group of Cleveland and is helping to organize the Ohio LinuxFest, 2004 edition (call for submissions now in the wild!). You can purchase C++ GUI Programming with Qt 3 from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.

217 comments

  1. Sounds like I need it. by Trejkaz · · Score: 1, Interesting

    I've been considering getting into native GUI development for a while now and Qt seems like as good a way as any to enter. The API is about as clean as Java's Swing, and I can hopefully ignore the C++ nature of it for the most part by finding a binding to something else. :-)

    --
    Karma: It's all a bunch of tree-huggin' hippy crap!
    1. Re:Sounds like I need it. by abes · · Score: 4, Informative
      Python has some nice bindings, and what better to go with a crossplatform toolkit than a cross platform interpreted language. Also, SIP (the tool used to create the bindings) finally works under OS X.

      A downside to QT is that it is not free under windows. While this might be okay with companies, if you ever considered writing crossplatform OSS programs, this can hamper things. There is a project porting the X11 version to windows, so its not a complete roadblock..

      Of course there is always GTK which has been known to also run under windows and OS X. It is not my intention to start any flamewars -- I am just pointing out that for those in favour of either toolkit there is plenty of crossplatformability.

      If either TK holds any major advantage its that GTK+ natively supports C code, but also has C++ bindings. The signalmm library that came out of gtkmm is actually really nice, and usable for other projects. However, in that case don't forget about boost, which also contains a signal library, not to mention a *really* nice interface to python (which I'm currently using in a project). Just be warned, you need a fast computer for compiling.

    2. Re:Sounds like I need it. by Trejkaz · · Score: 3, Interesting

      My current thoughts are using Qt/Java or Qt-Ruby, but it will largely depend what I decide to write.

      There are also C bindings for Qt in development, if I was going for an extremely simple application I would just use those.

      The #1 reason I would learn Qt, however, is to give myself a decent chance of contributing to the Psi project. I would be forced to learn C++ in that case but at least Psi's C++ is clean compared to many C++ apps I've seen. :-)

      --
      Karma: It's all a bunch of tree-huggin' hippy crap!
    3. Re:Sounds like I need it. by Brandybuck · · Score: 2, Insightful

      Don't igore the C++ nature of Qt! You don't need to know any of the ugly parts of the language. Qt makes C++ sensible. It's almost as if it were written by people who have to use C++ in their daily work :-)

      --
      Don't blame me, I didn't vote for either of them!
    4. Re:Sounds like I need it. by abes · · Score: 1
      It depends on what you are doing. I have meant to check out Ruby, as it sounds like a really nice language, but Python has the advantage of being more popular. This means for me that I have available libraries such as matplotlib, and numarray, which means I can hopefully never have to use matlab again. Of course, while this is great if you are in science, if you want to write internet apps, it doesn't make much a difference.

      I have never been a big fan of Java, but that's just me. I think these toolkits are great because it is easy now to write crossplatform apps easily without having to use Java. And, go ahead and flame me, but I don't consider TK a usable interface for most modern day apps.

    5. Re:Sounds like I need it. by HuguesT · · Score: 1, Interesting

      Ah yes, no template (no STL), no exception, home-grown String class and the weird non-standard signal/slot extension. C++ from ca 1990.

      Ugly is in the eye of the beholder.

    6. Re:Sounds like I need it. by mangu · · Score: 4, Insightful

      My own two bits: I chose Qt because from the vey start it was easy to use. I wrote my first working Qt program twenty minutes after first taking notice of Qt. Despite the non-standard signal/slot interface, Qt is about as intuitive as a toolkit can be.

    7. Re:Sounds like I need it. by be-fan · · Score: 2, Informative

      The PyQt bindings are dreamlike. However, C++ with Qt is pretty decent. Qt + moc makes the language a lot more dynamic and easy to use than normal, and the library does a good job of managing its own memory.

      I greatly prefer Qt to Swing, though. Swing tries to be way to "pure" and as a result can be somewhat contorted.

      --
      A deep unwavering belief is a sure sign you're missing something...
    8. Re:Sounds like I need it. by illcare · · Score: 2, Informative

      wxWidgets is a free alternative for Qt (formerly known as wxWindows). I am currently using it and so far so good. It supports openGL, multiple languages. It is also documented quite well.

      Furthermore, we discussed crossplatform GUI toolkits before here and here

      Cheers,
      Ilker

    9. Re:Sounds like I need it. by mrtroy · · Score: 1

      GTK is hardly a novice GUI developers dream, however. Without any premade button/listeners like swing/QT.

      Just chipping in, I agree with your post

      --
      [I can picture a world without war, without hate. I can picture us attacking that world, because they'd never expect it]
    10. Re:Sounds like I need it. by Brandybuck · · Score: 1, Interesting

      no template (no STL)

      The number one thing that confuses newbies

      no exception

      An incredibly difficult thing to get right no matter how simple the syntax. Exception "tarpits" are very sticky indeed.

      home-grown String class

      Only because the C++ string class is so limited without the use of STL algorithms.

      weird non-standard signal/slot extension

      Or you could use the weird "standard" signal/slot mechanism of libsig++. But beware of huge template bloat if you do. Signals/slots are an elegant solution that has plagued GUI developers for years. No fumbling with dangling callback pointers. No masses of abstract interfaces. No unreadable macros. Just a simple syntax and you get to connect user events to code.

      C++ from ca 1990

      Well of course! That was the era of Object Oriented Programming. This decade all the C++ purists are into Generic Programming, and frankly the C++ syntax for GP sucks. Yes you can write C++ in an Industrial Strength Style with full blown template partial specialization and code that causes your eyes to bleed, but please don't subject me to it.

      --
      Don't blame me, I didn't vote for either of them!
    11. Re:Sounds like I need it. by Grab · · Score: 1

      You've missed wxWindows (now renamed wxWidgets to avoid potential MS lawyer-evil :-( as the major alternative to QT. I'm a wxWindows novice myself, but it's looking good so far.

      What really put me off Qt was the MONEY! $1550 for a license may be OK for a company, but that's a serious wad of cash for one person to shell out. And I think it's the dumbest thing in the world to choose a multiplatform toolkit where multiplatform support is too expensive to use!

      That's what I've never understood about KDE. I mean, why use a cross-platform toolkit to develop for a single platform, when there's several good single-platform toolkits for that platform already? The word "DOH" springs to mind! ;-)

      Also Python is cross-platform if you can put up with using an interpreted language (ie. if you don't need your code to do any serious processing).

      There's also the FLTK as well, which is free (money and beer) and cross-platform. Never used it myself, so I can't say what it's like.

      Finally, you could simply use Cygwin to make your *nix-based code run on Windows, or Wine to make your Windows-based code run on *nix.

      Grab.

    12. Re:Sounds like I need it. by drooling-dog · · Score: 1
      I can hopefully ignore the C++ nature of it for the most part

      For anyone who doesn't want to "ignore the C++ nature of it," I would also recommend looking at gtkmm , a class library built upon GTK+ . I've used it in a couple of projects so far and have generally had a pleasant experience.

    13. Re:Sounds like I need it. by mark_lybarger · · Score: 1

      regarding the $1550. trolltech has flopped on this issue a couple of times. there was a qt 2.3 version available for open source development of windows software. i don't think they saw much use of it, and pulled it. now it looks like they're getting back onto having that available. at least i heard a recent book that contains windows libraries under a free software type license (you must develop free/opensource software to use the windows libs).

      i don't think we'll ever see tt go lgpl with their licenses which does hinder them in some ways. but how would you expect them to make their bread and butter? selling books and trainning? support? the only way is if they get bought out of obtain a large sponsorship someplace.

      anything using these qt libs must be gpl or compatible. this keeps the apache style license folks out of reach (that whole viral .vs. non-viral thing). i suppose the eclipse foundation could dual license swt.

    14. Re:Sounds like I need it. by Anonymous Coward · · Score: 0

      Qt uses "STL-like" templatized containers you moron. If you don't know what you are talking about then kindly keep your fucking mouth shut.

    15. Re:Sounds like I need it. by HuguesT · · Score: 1

      Like I said, it's in the eye of the beholder. Myself I like the C++ ISO style.

      One thing that confuses me with Qt is the allocation business. You are now allowed to free what you allocate, the toolkit takes care of that, except for a few things... I think this confuses newbies too.

      Regarding signal/slot, you should take a look at the callback infrastructure of FLTK (www.fltk.org), very simple, no extension.

    16. Re:Sounds like I need it. by Grab · · Score: 1

      How to make their money? Well, like you say, release it so that it's only free for development of software under specific licenses (say maybe LGPL, GPL or public domain). Companies using it for commercial development would have to stump up the cash - which, let's face it, is the situation today, bcos no-one can afford to develop cross-platform free software using Qt.

      If they can bundle a version on a CD with a book, why not let ppl download it? Seems inconsistent.

      Grab.

    17. Re:Sounds like I need it. by mark_lybarger · · Score: 1

      first, they probably are making some $$ off the book. but yes, it is inconsistent.

      from my understanding GPL software that relies on non-gpl libraries is hindered. from my understanding, that's why the gnome project was basically started. because they didn't like that kde was using qt libs w/o it being gpl.

      can you give an example of a library that's free for non-commercial use (gpl/lgpl/pub. domain) that REQUIRES payment for non-free software? only the viral nature of the GPL license ensures that. and only b/c qt owns copywright to the gpl software can they relicense it under the other licenses.

  2. Online Books by Tyler+Eaves · · Score: 0, Redundant

    Anyone know any good online books/tutorials for learning Gtk or QT?

    --
    TODO: Something witty here...
    1. Re:Online Books by Teh_monkeyCode · · Score: 5, Informative
      --
      -------
      Chunky Bacon
    2. Re:Online Books by CTib · · Score: 1
    3. Re:Online Books by f0rt0r · · Score: 0, Redundant

      There is a short tutorial available both on Trolltech's web site http://doc.trolltech.com/3.2/tutorial.html and in the documentation that comes with the QT libraries.

      --
      I can't afford a sig!
    4. Re:Online Books by sn0wman3030 · · Score: 1

      I think it's best to start out with a gui designing program such as Glade for GTK+ or QT Designer for QT. They write the interface for you, streamlining the process of learning GTK/QT. There are plenty of Glade/GTK+/GNOME tutorials at developer.gnome.org. KDE has something similar on developer.kde.org as well.

      --
      Life is offtopic.
    5. Re:Online Books by pyros · · Score: 1

      RAD tools are great for learning how the actual code affects the GUI. It's incredibly helpfull to start adjusting all the options in the RAD tool to see how the generated code changes. I've found that to be way more enlightening than API docs, as you can logically see how you're changing the GUI, then seeing how the code must change to reflect it. Qt Developer is a really nice tool.

  3. Author's review by gmuslera · · Score: 0, Insightful

    It could be an excellent book, and an excellent and very objective review, but, well, by default i would trust more in thirdy party reviews.

    1. Re:Author's review by 110010001000 · · Score: 1

      Er yeah, except the reviewer isn't the author. When he said "my new book" he did mean he wrote it.

    2. Re:Author's review by 110010001000 · · Score: 1

      er, I shoulda said he "didn't mean" he wrote it. Confused yet?

    3. Re:Author's review by Anonymous Coward · · Score: 0

      about what? can you be less specific?

    4. Re:Author's review by gmuslera · · Score: 1

      My mistake, after reading "my new book" looked at the book data in the review, found the reviewer name there and didn't notice that on the side it said "reviewer", not author.

  4. Why to get this book by f0rt0r · · Score: 4, Informative

    Besides the good reviews the book got on my favorite QT forum -> http://qtforum.org/thread.php?threadid=316&sid=&th readview=0&hilight=&hilightuser=0&page =1

    The book comes with a free non-commercial version of the QT-Win( windows ) library ( QT 3.3.1, I believe ). The last time this was available was version 2.3.0, so if you want to get a non-expiring version for Windows, here is your chance.

    I also read the book is released under a special copyright license similar to the GPL ( the Perens License ), so that after a few months the electronic format of the book becomes legally distributable. Is that cool, or what?

    --
    I can't afford a sig!
    1. Re:Why to get this book by Bruce+Perens · · Score: 5, Informative
      I also read the book is released under a special copyright license similar to the GPL ( the Perens License ), so that after a few months the electronic format of the book becomes legally distributable. Is that cool, or what?

      Yes. It's the Open Content License. It applies to the printed version today, meaning that you can shove it in a copier if you want and sell the copy, and it will apply to the electronic version when that is released. We usually do that about 3 months after the books reach store shelves. Source and unencrypted PDF will be available as usual.

      Unfortunately, I can't say the same for the CD. There is some proprietary software on the CD, I think a Windows version of Qt and some Borland stuff, which isn't really in line with the series policy. But I found out so late that it would have seriously messed things up for the Trolltech folks for me to insist on changes, so I let that go by this time (and made sure it would not happen again).

      Next books: Understanding the Linux Virtual Memory Manager next month, and Samba 3 by Example next week! Those are books 9 and 10 in the series.

      Thanks

      Bruce

    2. Re:Why to get this book by Anonymous Coward · · Score: 0

      Hi!

      Yes, it's nice to see the Qt folks paying lip-service to the idea of Free software. However, KDE must be avoided for this reason - it's just a lip-service. They're trying to jump on the bandwagon, and as RMS has said many times, GNU is the truly Free alternative.

      If you're a wage slave and must write cross-platform software (assuming you would support Windows, Macintosh etc.) then I suppose Qt is the least of many evils. However you cannot shake hands with the devil and then say you're only kidding! (They Might Be Giants reference)

      Those who seek to futher the good cause of Free Software will studiously avoid such trojan horses. There is no such thing as "almost" with Freedom!

      Cheers,
      GNU/Wolfgang

    3. Re:Why to get this book by Brandybuck · · Score: 1

      But I found out so late that it would have seriously messed things up for the Trolltech folks for me to insist on changes

      I thought it was kind of weird that this book came out at the very same time you were trashing Qt as unsuitable for UserLinux.

      --
      Don't blame me, I didn't vote for either of them!
    4. Re:Why to get this book by oever · · Score: 1
      I bought the book mainly because of the windows version of the library. There are four versions of the library on the CD:
      • Qt for Borland C++ Builder 5
      • Qt for Borland C++ Builder 6 trial edition
      • Qt for Visual C++ 6
      • Qt for Visual C++ .NET

      I've ported my app cubetest to windows with the Builder 5 compiler. This compiler is however very old and the debugger works in DOS. That's not really a problem if the app would work well. Unfortunately, on other computers than my own the app seems to crash quite often even though I've thoroughly checked floating point errors and memory problems under linux.

      So I'd like to use a better compiler and debugger under windows, to get the last problems out. Are there any other free compilers that could work with the Qt versions supplied on the CD? It would be ok to use a Microsoft compiler, since I'm porting to windows anyway.

      PS: irritating feature of Windows XP, if my app crashes, XP offers to send it to Microsoft for debugging!

      --
      DNA is the ultimate spaghetti code.
    5. Re:Why to get this book by rockdreamer · · Score: 1

      I guess this time it's ok :-)
      This CD will let me help my university to migrate from a 100% windows environment to a 100% GNU\Linux one gradually

      With this CD, I will be able to give them a binary of an app they need to use under windows now, then, when the infrastructure is ready, move everything under linux. Of course the whole thing is under the GPL, with the exception of the Qt Library...

      (It's a volunteer project to replace their current infrestructure with an open-source on, so I guess the non-commercial part is fulfilled ;-)

    6. Re:Why to get this book by JimJinkins · · Score: 1

      I received my copy this week. It looks good, _but_

      How can someone who receives a free program written for MS Windows that I write with the non-commercial Qt 3.3.1?

      I can develop with the copy that comes with the book. How can someone else get a copy without buying the book.

      Can someone post a URL for free download of the 3.3.1 non-commercial version (not 2.3)? Not just www.trolltech.com - the actual URL for downloading.

      Or am I mis-interpreting the license? Is it OK for me to distribute the non-commercial version of Qt for Windows along with a GPL'd program?

    7. Re:Why to get this book by Bruce+Perens · · Score: 1
      I thought it was kind of weird that this book came out at the very same time you were trashing Qt as unsuitable for UserLinux.

      Yeah. Well, it wasn't so much trashing Qt as picking one GUI. And I came in for a good deal of trashing myself.

      Qt is Free Software. No question about that. UserLinux has an even higher standard. The application libraries have to be directly usable in proprietary software without another license.

      You know, we made another choice. PostgreSQL over MySQL. And we didn't get abused about that one. Marten Miklos (MySQL CEO) actually thanked me for making that choice instead of attempting to fork MySQL's client libraries so that we could use LGPL versions.

      Thanks

      Bruce

    8. Re:Why to get this book by Anonymous Coward · · Score: 0
      The application libraries have to be directly usable in proprietary software without another license.

      Doesn't this mean that UserLinux's goal is to use less-Free software? How is that a "higher standard"?

      You know, we made another choice. PostgreSQL over MySQL. And we didn't get abused about that one.

      The difference is that PostgreSQL is superior software; fortunately for UserLinux, it also has the more convenient license. In the case of KDE/Gnome, you picked the inferior software simply because of its convenient, less-free license.

    9. Re:Why to get this book by Anonymous Coward · · Score: 0

      True geeks care about technology. Religious zealots care about licensing minutiae.

    10. Re:Why to get this book by argel · · Score: 1
      Unfortunately, I can't say the same for the CD. There is some proprietary software on the CD, I think a Windows version of Qt and some Borland stuff, which isn't really in line with the series policy. But I found out so late that it would have seriously messed things up for the Trolltech folks for me to insist on changes, so I let that go by this time (and made sure it would not happen again).

      In the future why not just make sure people know that certain things only come with purchasing the book? That seems like a better deal than depriving users of a non-expiring non-commerical-use Qt 3.x that cannot be found anywhere else.

      --

      -- Argel
    11. Re:Why to get this book by Bruce+Perens · · Score: 1
      In the future why not just make sure people know that certain things only come with purchasing the book?

      Because I am in the business of creating a credible book series for Open Source, and you don't say stuff like that if you want credibility with Open Source developers. I can't claim the series is of, by, and for Open Source except for these particular pieces that have restrictive licenses and only come with the book. It would be hypocritical.

      That seems like a better deal than depriving users of a non-expiring non-commerical-use Qt 3.x that cannot be found anywhere else.

      Troll Tech is welcome to do whatever they want, as long as my name's not on it. And they are welcome to do it with my editor and publisher, and with all of the same source files they used to create this edition.

      Thanks

      Bruce

    12. Re:Why to get this book by Bruce+Perens · · Score: 1
      In both cases the software is Free. One has the additional goal of preventing use in proprietary software, the other facilitates proprietary software.

      If you feel very strongly that proprietary software is inherently a bad idea, you might disagree with my decision. But I'm not on the opposite side of the argument from you. I feel that we will not get the business world on Free Software unless we meet them halfway and allow them to continue to have their proprietary solutions on our platform. Once they are on our platform they will better understand the virtue of Free Software. It is important to have business people on our side, because we have some legal challenges (software patenting, DRM) where we need their political strength.

      And I'm not even going to argue with you which GUI is superior. There is very widespread disagreement about that.

      Thanks

      Bruce

  5. online tutorials by CTib · · Score: 2, Informative
  6. Pricing by DRUNK_BEAR · · Score: 3, Insightful

    Qt may be nice and cool since it's multiplatform, but the pricetag associated with it is not so nice and cool (starting at 1.55k$). Is anyone aware of OSS products similar to this?

    --
    DrkBr
    1. Re:Pricing by Anonymous Coward · · Score: 0

      Yes. Qt. Unless GPL isn't open source to you, and if not, then you've really limited your options.

    2. Re:Pricing by DRUNK_BEAR · · Score: 2

      Sorry... Not fully awake tonight... Skipped directly over the GPL comment...

      --
      DrkBr
    3. Re:Pricing by Brandybuck · · Score: 1

      Go price out the "Deluxe" GNU distribution...

      --
      Don't blame me, I didn't vote for either of them!
    4. Re:Pricing by BiggerIsBetter · · Score: 2, Informative

      No, it's a fair question. There is still no free GPL Windows version. Possibly closest thing to an open source option is wxWidgets.

      --
      Forget thrust, drag, lift and weight. Airplanes fly because of money.
    5. Re:Pricing by Anonymous Coward · · Score: 0

      wxWidgets.

      Because they don't charge you if you decided to make commercial applications.

    6. Re:Pricing by yamla · · Score: 1

      There may be no GPL'ed Windows version but there is a non-commercial edition of Qt 3.x for Windows included on the CD accompanying the book.

      --

      Oceania has always been at war with Eastasia.
    7. Re:Pricing by Cthefuture · · Score: 3, Informative

      Yeah but wxWidgets (wxWindows) is kinda crappy.

      It's layers on layers of API's which just multiplies the complexity, amplifies bugs, and slows things down. Not to mention the bloat on bloat.

      Plus it's not really very cross platform, there are so many "This works on Gtk but not Windows" or "This works on Windows but not anything else", etc. Your code turns into #ifdef spaghetti hell. You might as well write native versions for each platform.

      The only truely viable cross platform (X11, Windows, MacOS) toolkits are:

      1. Qt (*too expensive, nice API, kinda bloated/slow)

      2. Fltk (tight/fast, nice API, *limited power, ugly/no themes yet)... My current favorite but I have a lot of custom code to make it look good and add features I need.

      3. Tk (*horrible API, not very flexible, can be slow)... I haven't used it much because the API sucks. Does this run under an X11 layer or native on MacOS?

      4. Gtk (C based painful API or Gtkmm C++ bloat, kinda bloated but relatively fast on X11, slow on Windows, MacOS uses X11 layer, *buggy as hell)

      --
      The ratio of people to cake is too big
    8. Re:Pricing by Anonymous Coward · · Score: 1, Informative

      1. Qt (*too expensive, nice API, kinda bloated/slow)

      2. Fltk (tight/fast, nice API, *limited power, ugly/no themes yet)... My current favorite but I have a lot of custom code to make it look good and add features I need.

      3. Tk (*horrible API, not very flexible, can be slow)... I haven't used it much because the API sucks. Does this run under an X11 layer or native on MacOS?

      4. Gtk (C based painful API or Gtkmm C++ bloat, kinda bloated but relatively fast on X11, slow on Windows, MacOS uses X11 layer, *buggy as hell)


      What about SWT and other Java based GUI toolkits? Not viable enough? I've been looking into SWT for a while, but have not had the chance to write anything in it, so I can't really say.

    9. Re:Pricing by Suppafly · · Score: 1

      http://kde-cygwin.sourceforge.net/qt3-win32/featur es.php

    10. Re:Pricing by mark_space2001 · · Score: 1

      There's this thing called GTK that Gnome is based on, I hear it's pretty decent.

    11. Re:Pricing by Anonymous Coward · · Score: 0

      Check out wxWidgets, http://www.wxwidgets.org.
      It's available for free, it works on Windows, Linux and OSX (maybe others) and it has superb bindings to, among others, Python.

    12. Re:Pricing by Anonymous Coward · · Score: 0

      Yeah, well that's the trouble with hearsay, isn't it...

      GTK is a great steaming turd with huge black flies (Stallman's minions) buzzing excitedly around it. There are peanuts of good things visible, but you don't feel like poking your fingers in there to see if anything worthwhile can be extracted. In fact it's highly advisable not to touch it at all.

    13. Re:Pricing by Anonymous Coward · · Score: 1, Informative

      There is also:

      5. Fox toolkit. I haven't used it much, but I am using an application that does. The app is kind of nice, so I assume the toolkit is at least passable.

    14. Re:Pricing by Anonymous Coward · · Score: 0

      Java isn't viable as a GUI language. :)

      But as for SWT well, it's complex, convoluted, and really not a lot better than wxWidgets. Personally I feel the API design sucks.

    15. Re:Pricing by Anonymous Coward · · Score: 0

      Doesn't work on MacOS (maybe through the X11 layer but even that was sketchy last I looked)

    16. Re:Pricing by JLyle · · Score: 1
      Doesn't work on MacOS (maybe through the X11 layer but even that was sketchy last I looked).
      Yes, FOX definitely works on Mac OS X under X11.
    17. Re:Pricing by Anonymous Coward · · Score: 0
      Yeah, well that's the trouble with hearsay, isn't it...
      You know, you are right. Now I don't have to read the rest of your post. Thanks a lot.
    18. Re:Pricing by pipacs · · Score: 1

      I wrote small and medium sized applications using wxWidgets for Linux and Windows and I really liked it. It's basically the only cross-platform /cross-language toolkit which is using native widgets, so your apps don't look like alien body on your desktop. QT, Fltk, Tk and Gtk are all faking the native look and feel.

      Those #ifdefs you mentioned are rarely needed, mostly in cases when you are accessing platform specific features like OLE on Windows.

      P.S. The Tk API is not horrible at all. Actually it's one of the most brilliant I ever seen. The canvas and rich text widgets were truly revolutionary at their time.

    19. Re:Pricing by JInterest · · Score: 1

      The only truely viable cross platform (X11, Windows, MacOS) toolkits are:

      You are excluding Java/Swing of course, which is both viable and truly cross-platform.

    20. Re:Pricing by JInterest · · Score: 1

      Java isn't viable as a GUI language. :)

      Sorry, but this isn't true, and it hasn't been true for a while now. Java on the client is perfectly viable now, thanks to increases in processing power, improvements in the Java Platform API, and improvements to the Hotspot JIT. If you want to see an example of a complex, viable Java GUI, PCGen is a good example. Google around a little and you'll find a lot of others.

      Saying that Java is "too slow" or "klutzy" for GUI apps is old old news, and no longer the case. Let's not spread any more FUD on that issue please.

  7. GPL Version by bfree · · Score: 4, Interesting
    Quoting from the submission:
    There's a free version licensed under the GPL for non-commercial use
    Pardon? How can a GPL be version be restricted like that? Of course it can be used commercially, just under the terms of the GPL.
    --

    Never underestimate the dark side of the Source

    1. Re:GPL Version by denks · · Score: 2, Informative

      Take a look at MySQL to see how something can be offered both commercially and under the GPL.

      If you are the copyright holder for the entire code, you can license it however you please. The GPL does not remove the right of the copyright holder to do whatever they want with their own code

      --

      I am Monkey, the Great Sage, equal of heaven!
    2. Re:GPL Version by Trejkaz · · Score: 1, Interesting

      The holders of the copyright can decide which license applies to which parties. Trolltech have simply decided that commercial parties need to pay them money to use it, while everyone else can use the GPL.

      --
      Karma: It's all a bunch of tree-huggin' hippy crap!
    3. Re:GPL Version by HuguesT · · Score: 5, Informative

      What they mean like that is that you are not allowed to develop closed source apps, free (as in beer) or otherwise, with the GPL version of QT.

      If you want to develop closed-source applications with QT you need to purchase the commercial version of QT, you can't use the GPL version.

      This way of doing things is compatible with the GPL.

    4. Re:GPL Version by bfree · · Score: 2, Informative

      A copyright holder can license it however they please, but if they license it under the GPL that's that. They could license it under a modified GPL which doesn't allow commercial distribution but I didn't think that was the case here! GTK on the other hand is under a modifed LGPL which allows derived binary only releases.

      --

      Never underestimate the dark side of the Source

    5. Re:GPL Version by bfree · · Score: 4, Informative

      Right, so the original post should have read something like "There's a free version licensed under the GPL and also a commercial version for when that isn't appropriate" not that there is a GPL version for non-commercial use.

      --

      Never underestimate the dark side of the Source

    6. Re:GPL Version by Robawesome · · Score: 1

      Trolltech have simply decided that commercial parties need to pay them money to use it, while everyone else can use the GPL.

      This is crap. The GPL explicitly allows charging for distribution. Unless by commercial you mean "Restrictive of users' freedom", in which case you are right.

      --

      I did NOT learn everything I need to know in kindergarten.

    7. Re:GPL Version by GlassHeart · · Score: 2
      The holders of the copyright can decide which license applies to which parties. Trolltech have simply decided that commercial parties need to pay them money to use it, while everyone else can use the GPL.

      Doesn't work that way. The GPL explicitly permits your licensee (who in this case is not a commercial entity if you refuse) to give out the source code to anybody. If you additionally require your licensees not to give it to a commercial entity (which is legal), then it's no longer GPL.

    8. Re:GPL Version by alienw · · Score: 2

      Wrong. First, you can't do that (with the GPL anyway). Second, you can perfectly damn well use Qt for commercial applications. You just have to license your commercial application under the GPL, thus making it Free software.

    9. Re:GPL Version by Trejkaz · · Score: 1

      Then make a commercial app based on Qt, sell it for a big profit, and see if Trolltech brush it off.

      --
      Karma: It's all a bunch of tree-huggin' hippy crap!
    10. Re:GPL Version by Anonymous Coward · · Score: 0
      They sell a non-GPL version for use by those that don't want to GPL their entire application.

      Since the GPL is viral, I like to look at a commercial co-license as a condom for protecting your work.

    11. Re:GPL Version by Trejkaz · · Score: 1

      How would I know? "Commercial" is Trolltech's wording, not mine.

      --
      Karma: It's all a bunch of tree-huggin' hippy crap!
    12. Re:GPL Version by Anonymous Coward · · Score: 1, Informative

      Someone moderate this post up, this guy actually 'gets it'.

      To further clarify. You can use the GPL version of Qt for commercial purposes, but if you sell a product that uses the GPL version of Qt your product has to be GPLed. Doesn't mean you can't sell your product, just means you can't restrict what users can do beyond the GPL and you have to provide source code, so your customers can give it, or your source code away under the GPL. However, since TrollTech also offers a non-GPL license option, if you don't want to abide by the GPL and want to sell a closed source commercial product using Qt, you can do that if you pay TrollTech for their 'commercial version'.

      Also note that TrollTech does not offer a GPL version of their Windows version of Qt, that one is commercial only. Only the *nix version is GPL. Although TrollTech discourages anyone from doing so, there is legally nothing TrollTech can do to stop someone from porting the *nix version to work on Windows, the GPL specifically permits that. I believe that TrollTech might be able to legitimately require any such derivative work to change the name of the result or otherwise sufficiently distinguish that it is not a TrollTech developed and supported port. Someone correct that if its wrong. And of course such a port couldn't be sold under a closed source license the way that TrollTech sells their non-free Windows Qt.

    13. Re:GPL Version by denks · · Score: 1

      Apologies, I didnt read the parent post closely enough. Yes, once code is under the GPL you cannot decide that it only be used for commercial or non-commercial use. My point was misdirected.

      --

      I am Monkey, the Great Sage, equal of heaven!
    14. Re:GPL Version by yamla · · Score: 1

      There's a version included with the book that is fine for non-commercial use. While the license isn't GPL, it certainly isn't 'commercial-only' as you say.

      --

      Oceania has always been at war with Eastasia.
    15. Re:GPL Version by Trejkaz · · Score: 1

      ... and then by Trolltech's definition it isn't a commercial application anyway.

      --
      Karma: It's all a bunch of tree-huggin' hippy crap!
    16. Re:GPL Version by be-fan · · Score: 1

      I think you're misunderstanding how the TT license works. Since Qt is GPL'ed, you're right, they can distribute it however they want. However, if you want to write a proprietory app using the library, you'll have to use a GPL-compatible license for your work. If you don't want to do that, you can pay Trolltech to license it to you under the terms of a non-GPL license.

      --
      A deep unwavering belief is a sure sign you're missing something...
    17. Re:GPL Version by mark-t · · Score: 1
      Here's the thing though.... it's entirely possible to make a Qt application without actually linking statically or dynamically to any of Trolltech's code, but instead just using interprocess communication.

      The GPL isn't sustainable through IPC because if it were, Photoshop would be violating the GPL because it can read picture files that were created with the Gimp, for example.

    18. Re:GPL Version by Arker · · Score: 1

      You're correct, and the reviewer was confused. There is a GPL version, with which you can write GPL programs, whether commercial or not. However, if you want to write proprietary programs, not licensed under the GPL, then you need to pay them for a different license.

      Also note that there are actually four versions of QT - for QT X11, QT Embedded, QT Mac, and QT Win32. While you should be able to consider them as equivelant when you're writing the code, you'll need the appropriate one to compile the code on a particular platform, and there is no GPL version of QT Win32 best I can tell, although there is an independent project porting the X11 version over. So if you're going to compile your QT app for Windows you'll need to buy the non-GPL version, or use a work-around like Cygwin perhaps.

      --
      =-=-=-=-=-=-=-=-=-=-=-=-=-=-
      Friends don't let friends enable ecmascript.
    19. Re:GPL Version by gr8_phk · · Score: 1
      "They could license it under a modified GPL which doesn't allow commercial distribution but"

      Actually you can't modify the GPL. The FSF was smart enough to see confusion like this, so the GPL itself is copyrighted - thou shant make derivative licenses. Different license with similar terms? Sure. Modified GPL - not.

    20. Re:GPL Version by GlassHeart · · Score: 1
      They sell a non-GPL version for use by those that don't want to GPL their entire application.

      The point is that the GPL explicitly states:

      Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions.
      where "these terms and conditions" refers to the GPL. IOW, even if the original author is unwilling to license directly to commercial usage under GPL, a non-commercial licensee can turn right around and redistribute the code under GPL terms...

      ...unless an additional restriction is placed upon the original non-commercial GPL licensee, which is entirely legal but the GPL does not do. A "GPL" that prohibits redistribution to commercial entities under the GPL is not the GPL.

    21. Re:GPL Version by GlassHeart · · Score: 1
      Note that I was responding to the statement quoted below:

      Trolltech have simply decided that commercial parties need to pay them money to use it, while everyone else can use the GPL.

      Using only the GPL, Trolltech has no such power. As we agreed, once you release under the GPL, you have given the licensee the right to redistribute under the GPL even to commercial entities. They are still bound by the GPL, but Trolltech has no way to charge GPL commercial software for Qt.

      The Trolltech website doesn't really make a distinction between open versus closed source and proprietary versus non-proprietary software. For the most part, it's probably close enough, but it's not exactly true that all commercial users must use the commercial license. They can simply be a GPL licensee of one of Trolltech's GPL licensees.

  8. wow! we are at the python/java/.NET era! by borgdows · · Score: 4, Funny


    programming GUI in C++... it's so nineties!! :o)

  9. Re:wow! we are at the python/java/.NET era! by Oestergaard · · Score: 0, Offtopic

    Ok, something like this was bound to happen ;)

    C++ bashers out there, please go read a short C++ vs. C "competition" sort-of.

    It's a short explanation of some of the most common C++ vs. C misconceptions, and a funny little benchmarks (with a lot other than just hard numbers).

  10. Download? by 110010001000 · · Score: 0, Offtopic

    Anyone know where I can download it?

  11. The great thing with Qt: Write once,... by hysterion · · Score: 4, Funny
  12. C++ Skill... by MP3Chuck · · Score: 3, Interesting

    What level of C++ knowledge is necessary to begin working with something like Qt (or other windowing libraries for that matter)? Having taken several semesters of C++ so far, I want to try something a little more tangible than the prompt stuff we've been doing.

    1. Re:C++ Skill... by Otter · · Score: 4, Informative
      Qt (or maybe Qt+KDE) is *the* place to start!

      I was in a similar position, with enough self-taught C++ to read and follow code but with no clue of how to build a meaningful GUI app. The great thing about Qt is that it genuinely makes OOP seem logical, in the way you make a bunch of objects and hook them together. I'd greatly recommend getting a free version of Qt, going through the tutorials and examples (that's the other great thing -- the documentation is superb) and maybe then trying KDevelop and the KDE libraries.

      Pardon me for gushing, but the combination of Qt and KDevelop was a truly empowering tool in my hands and I strongly recommend it to anyone in the same boat.

    2. Re:C++ Skill... by 120duff978 · · Score: 1

      Just basic OO stuff really. Qt isn't heavily templated, so the part of C++ that gives most people a headache isn't there. It's nothing more tricky than what you'd see in the STL.

    3. Re:C++ Skill... by Quattro+Vezina · · Score: 1

      I'd say you're probably ready. I've just started dabbling in Qt now, and that's after taking a year of AP C++ in high school, and a semester of C++ in college, plus some self-study.

      You might want to check out Trolltech's documentation site. Particularly, the How to Learn Qt, The Qt Whitepaper, Tutorial 1, and Examples

      Tutorial 1 is easy to follow, and should give you an idea of how things are done in Qt. The Whitepaper is a more general overview of Qt. Those should help you get started, and will let you determine if you're ready to delve into GUI.

      --
      I support the Center for Consumer Freedom
    4. Re:C++ Skill... by Quattro+Vezina · · Score: 3, Informative

      and maybe then trying KDevelop and the KDE libraries.

      Actually, I'd recommend that if he has KDevelop 3, he should use it to create a new Qt app--specifically, the one with the menus/toolbars/text editor. Why? It'll generate a good amount of code, specifically, it'll create a bare-bones text editor. He can then look through the code, compile and run the app, and see how it works, then playing around with it and making changes, seeing how those changes affect the app.

      Pardon me for gushing, but the combination of Qt and KDevelop was a truly empowering tool in my hands and I strongly recommend it to anyone in the same boat.

      I fully agree with you here. Add Qt Designer to the mix as well--it'll really help with interface design. Though I would still recommend learning how to create widgets without Qt Designer first, in order to better learn how they work. After learning that, he should then use Qt Designer to set up the design of his apps.

      --
      I support the Center for Consumer Freedom
    5. Re:C++ Skill... by alienw · · Score: 1

      Not too much. You have to understand how classes and such work pretty well, but you can do many simple applications quite easily. Try the Qt Designer tutorial series (doc.trolltech.com)

    6. Re:C++ Skill... by Anonymous Coward · · Score: 0

      Tangible? I guess by that you must mean "clickable".

    7. Re:C++ Skill... by MP3Chuck · · Score: 1

      So I'm guessing it'd be easier to learn/develop Qt in a Linux environment, as opposed to Windows? KDevelop is obviously a KDE tool, and I don't see QtDesigner download available on TrollTech.

      It's not a big deal to have to use Linux... but Windows would be more convenient, since that's where I am most of the time.

    8. Re:C++ Skill... by Snoopy77 · · Score: 1

      What level of C++ knowledge is necessary to begin working with something like Qt (or other windowing libraries for that matter)? Having taken several semesters of C++ so far, I want to try something a little more tangible than the prompt stuff we've been doing.

      I'm guessing that you would have a basic understanding of most of the features of C++ and would understand the philosophy of OOP. The major step is now getting out of a command line user input/system output frame of mind to a GUI one. But starting with a mature toolkit like Qt is a great place to start.

      --
      "She's a West Texas girl, just like me" - G.W Bush Iraqis
    9. Re:C++ Skill... by Anonymous Coward · · Score: 0

      Having taken several semesters of C++ so far, I want to try something a little more tangible than the prompt stuff we've been doing.

      You've been doing 'prompt stuff' for several 'semesters'?

      What kindergarten are you in anyway?

      And who, pray tell, has even been holding YOU back?

    10. Re:C++ Skill... by brsmith4 · · Score: 1

      FYI: Most "tangible" programming has no interface. Libraries are where the most important code in your programs lie. Don't believe that because you aren't programming fancy gui's or graphics in your CS classes that you aren't doing anything tangible. The most effective code (kernel, libs, etc.) usually has no interface. I only say this because I too, once felt the way you do.

    11. Re:C++ Skill... by zorander · · Score: 2, Informative

      What is neccesary to really work with Qt is an understanding of Object oriented *concepts*, not lanugage features. If you understand a given concept then the process of translating it into syntax can be learned in a few hours.

      Signals and slots are probably the biggest hurtle to jump over for basic application development in Qt. They're somewhat different than run of the mill callbacks. The event-driven programming paradigm takes a bit of getting used to.

      My advice to you, however, is to learn more languages. There is nothing that teaches a concept as well as seeing how it manifests itself in multiple languages. C++ is not all there is to object oriented programming. At the very least, python and objective-C have lots to teach you about OOP. As far as your Qt-learning goals, you'll see in part how the problems solved by signals and slots in Qt have been dealt with in other languages with less cumbersome object orientated features, and in that way gain a deeper understanding of and appreciation for the design decisions made in the tools you use.

      In short the answer to your question is that you need to understand object oriented concepts with a little bit of depth. Class hierarchies, private, protected, friend, etc., Polymorphism both via operator overloading (which is used extensively in the Qt base classes), and via the 'common parent class (QObject)' approaches is also good to have a handle on.

      Really, though. Learn more languages. There's lots of fun stuff to be done in languages with large standard libraries like java and python (and objective-c if you happen to be a mac user), even without getting into user interfaces.

      Brian

    12. Re:C++ Skill... by MP3Chuck · · Score: 1

      Oh I'm well aware of that ... thank you though. :) I meant more along the lines of what the AC above said ... "clicky."

    13. Re:C++ Skill... by murrayc · · Score: 2, Informative

      Qt is not the place to start C++ if you want to learn C++ rather than Qt. You'll be shown Qt C++ language extensions that won't work in non-Qt projects, and you'll be shown unusual Qt- or KDE-specific build tools rather than standard GNU build tools. It's not as bad as learning C++ via Visual Studio and MFC, but it's not C++.

    14. Re:C++ Skill... by Arkaein · · Score: 1

      Actually none, if you know (or are willing to learn) a little Python.

      I've just recently started dabbling in Python, and I decided that I would like to learn more. I have also wanted to teach myself Qt for quite a while. After recently putting together a new PC that could handle modern versions of Qt (my old box ran Mandrake 8.0 and didn't have the HD space for updated libs) I decided to learn Python and Qt together.

      I would definetely recommend this strategy. Python's dynamic typing makes it much faster to put together new objects. Qt signals and slots (for message passing/event handling) are actually simpler in Python than in C++, with no requirement of running the MOC (meta-object compiler) which is needed for certain C++ Qt macros. Qt Designer, the standard Qt GUI designer, produces interfaces in XML format. Normally a utility called uic is used to compile this UI to C++ code. A utility called pyuic compiles the same interfaces to Python.

      If you're comfortable in C++, by all means try out Qt with the standard C++ bindings. But if you're interested in trying out new things rapidly, a little investment in Python may actually accelerate your learning process.

      Disclaimer: C++ is actually my strongest language, but in learning a new API I think that a more rapid development language will be more fruitful. Also, Qt knowledge learned in C++ or Python translates extremely well in either direction.

    15. Re:C++ Skill... by Roberto · · Score: 1

      Uh... Qt Designer comes with every version of Qt (development version, that is, not a runtime)

  13. Re:wow! we are at the python/java/.NET era! by abes · · Score: 3, Insightful
    I love C++. However, I constantly run into the problem that almost no one else in my field (science) understands C++. Some know C and matlab, but that's about the end of it.

    While for software engineers you might be able to argue that its their field, learn the language, you can't do that with people who use programming as part of their job, but not their main focus. I am constantly faced with the problem of either having other people understand my code, or writing things faster and with less bugs.

    The biggest obstacle is the difficult syntax of C++. After using it for enough time it's easy to forget, but it is a rather large learning curve -- especially for people who just want their code to work. The other complaints leveled at C++ (unless you are working with embedded systems, etc.) I think are just flamewar material.

    If there was one feature to pick out for why to use C++ I would have to say templates. Too bad toolkits like QT don't use them.

  14. Gah! Kill Qt already! by Anonymous Coward · · Score: 1, Informative

    Qt's licencing is absolutely abysmal. You can't make commercial products with it for free - even if you don't change or add to their code and are merely linking with it. Oh, and there is no GPL version for Windows .

    Trolltech charges $2400 for two platforms. Presumably cross-platform coding is the sole reason you'd be using such a GUI library - so that's going to be your base price.

    But Microsoft solutions are far cheaper (it's less than $100 for Windows XP from NewEgg) - and they even give away a free version of their compiler.

    If you're looking for a cross-platform GUI - for a commercial or free project - look at the competitors to Qt. I would not hesitate to recommend wxWidgets as a thoroughly competent, cross-platform, commerce-friendly GUI system.

    1. Re:Gah! Kill Qt already! by Anonymous Coward · · Score: 1, Informative

      $2400 is absolutely nothing to pay for a decent toolkit.

      I've looked at libraries - imaging in particular where they charge you $200 just to get an evaluation copy.

      If you want to make money from your software, but can't afford to put up $2400 then you might as well give up now, or try a GPL release - you'd be suprised how many people would still buy it.

    2. Re:Gah! Kill Qt already! by Anonymous Coward · · Score: 0

      How the f*ck is this flamebait? Wake up moderators!

    3. Re:Gah! Kill Qt already! by Anonymous Coward · · Score: 4, Insightful

      Exactly how much code would you have to write to create your project with Qt (or GTK). Well thats EXACTLY HOW MUCH YOU ARE USING OF THEIR CODE. Thats how much time (time = money) you save by using it instead. money/time you didn't have to spend making your project.

      With GPL code, you pay for that time/money by giving back to the comunity that provided for you.

      With $2400 you pay for that time money by giving back to the comunity that provided for you.

      By paying nothing you basically take from the community and ask them to give you money back before they get anything of you.

      Don't want to give, don't take.

      People like you really piss me off. "They world owes me a job, the world owes me free music, the world owes me free software... But I owe the world nothing, it should pay me for my stuff"

      Sigh. If you can't afford the license cost your software must be pretty sucky anyway, as thats barely a couple of months wages.

    4. Re:Gah! Kill Qt already! by Anonymous Coward · · Score: 0

      Why is $2400 too expensive? How much do you earn anyway? Indian salary perhaps?

    5. Re:Gah! Kill Qt already! by cozziewozzie · · Score: 2, Interesting

      How is Qt's licensing abysmal, please? It's licensed under the GPL. Just like Linux, GNU, GCC, Emacs, MySQL, MPlayer, The GIMP, and just about any other Free Software program.

      So, what's so abysmal about the GPL? You sound like you think the world would be much better off if Linux, GNU, GCC, Emacs etc. all changed to proprietary licensing (like "WindowsXP from NewEgg") and available for "less than $100 from NewEgg".

    6. Re:Gah! Kill Qt already! by Umrick · · Score: 2, Informative

      I've never understood this argument. In a corporate developement environment, $2400 is trivial, especially if it nets you cross-platform, integrated DB access, and a host of other base capabilities.

      In the land of $100k for a DB, $70k servers, etc, $2400 is nothing. Now if you want to make the case that $2400 is too steep for a single developer, I've spent that much for Enterprise versions of JBuilder. Maybe it's too much for a shareware developer, or a budget strapped startup, but it's certainly not out of reach.

    7. Re:Gah! Kill Qt already! by Anonymous Coward · · Score: 0

      $2400 is absolutely nothing to pay for a decent toolkit.

      This is obvious nonsense, but let's disgregard that for the moment.

      My problem with Qt *isn't* that Qt is licensed under the GPL instead of the LGPL or BSD licenses. Individual app developers can purchase or not purchase the licenses required for closed-source Qt development... their choice. My problem is that KDE is based on it. A huge stack of software is therefore dependent on a GPL licensed cuckoo. If you want to write KDE app, you are subject to the Qt license restrictions... YOU HAVE NO CHOICE.

      If you decide that Qt suits your needs for an individual app, go for it.. but with KDE it has been shoved into a large free software framework (and *shoved* is the right word, many core KDE developers for for TrollTech,not least the founder of the project).

    8. Re:Gah! Kill Qt already! by JCholewa · · Score: 2, Interesting

      > Oh, and there is no GPL version for Windows

      As a matter of fact, there is.

      Trolltech has no impetus or obligation to port GPL Qt to Win32. But GPL is GPL, so anybody with enough skill can -- and did -- port the codebase to MS Windows. Yeah, it's not perfect (yet), but I've compiled and run stuff written in Qt2.3NC with this GPL'd version of Qt3.x.

      --
      -JC
      coder
      http://www.jc-news.com/parse.cgi?coding/main

      PS: It's Windows-native and doesn't need X11 to run, in case you're confusing it with the similar project on the same sourceforge area.

    9. Re:Gah! Kill Qt already! by Anonymous Coward · · Score: 0
      $2400 is nothing

      is it a joke?

      $2400 are ($2400 / $33per-oil-barrel) = near 73 oil-barrels.

      The expensive QT-licence costs 73 oil-barrels !!!

      open4free

  15. Some reasons to use an OS' native toolkit by Rascasse · · Score: 5, Interesting
    Speaking as a relatively new Mac OS X user, I'd like to add the following reasons not to try to use cross-platform GUI toolkits. Looks are deceiving. Though they appear to look like native widgets, upon closer inspection some differences become apparent. Moreover, they may not act like native widgets. The keyboard shortcut equivalents may be different than what are available on the native OS' widgets. Scripting support may be available on the native OS' widgets, but unavailable on these cross-platform widgets. As minor as these differences may appear at first-glance, they add enough inconsistency to ruin the user experience - especially on OSes such as Mac OS X.

    I used to be a big fan of cross-platform GUI programming, but having worked on all variations of Windows, Linux desktops, and Mac OS X, I am now against the idea. I now believe if you're going to support a platform, use the native toolkits as they bring a level of consistency that is just not there with cross-platform toolkits. Having to use a GTK or QT-based app on Mac OS X these days proves to be tremendously frustrating. Text boxes don't have spell-checking or auto-completion. The red dot in the window decoration does not change if the document does. In fact, there is often no document-based implementation whereas there would be one if a native solution was developed. On Windows and Linux, the differences may only be cosmetic, but on OSes such as Mac OS X looks are only the tip of the iceberg with the problem. Cocoa widgets look pretty, but they also bring with them a lot of functionality that I've yet to see replicated on these cross-platform toolkits.

    So please, when in Rome do as the Romans do.

    1. Re:Some reasons to use an OS' native toolkit by Trejkaz · · Score: 2, Interesting

      The thing is, on a whole class of platforms, Qt is the "native" toolkit.

      But you're right. Spell checking isn't only a problem on OSX, it's even a problem on KDE. Even if every KDE app you own uses the built-in spellchecker to check every text entry box, a Qt app you compile today will not use it automatically.

      Cross-platform toolkits like wxWindows are supposed to deal with this sort of problem by just proxying the native toolkits. I'm not sure how well this works because I haven't used wx* either, mostly put off by the ugliness displayed in most screenshots from wx* apps.

      --
      Karma: It's all a bunch of tree-huggin' hippy crap!
    2. Re:Some reasons to use an OS' native toolkit by Brandybuck · · Score: 1

      Cross-platform toolkits like wxWindows are supposed to deal with this sort of problem by just proxying the native toolkits.

      Read his post again. That's not the problem. Qt also proxies the native toolkit on Mac. The look is identical because it's the same. But the *feel* is still wrong no matter what toolkit you use.

      --
      Don't blame me, I didn't vote for either of them!
    3. Re:Some reasons to use an OS' native toolkit by Anonymous Coward · · Score: 0

      The options are:

      -Develop in the native toolkit for each platform and get it perfect. The development costs (time/price) for this are massive

      -Develop in a cross-platform toolkit and save development costs but the apps won't feel completely right (if so)

      -Develop for just one platform

      I will go for the second option anytime. If the app is good enought it will get used. If the toolkit gets used it will improve.

      You are talking about OSX, what do you prefer, lots of cross-platform applications or just a few Mac OSX ones?

    4. Re:Some reasons to use an OS' native toolkit by Arker · · Score: 1

      I somewhat agree with that. I think ideally, the core functions should be cross-platform and well designed, so that it can be plugged into the native GUI fairly easily on each platform. This gives the best of both worlds - most of the advantages of portability, without the interface mess you get using something like QT on Mac, for example. But, we don't live in an ideal world, and assuming the app is worth having in the first place, it's probably better to have it available on more platforms than less, even if the UI isn't ideal.

      --
      =-=-=-=-=-=-=-=-=-=-=-=-=-=-
      Friends don't let friends enable ecmascript.
    5. Re:Some reasons to use an OS' native toolkit by TomorrowPlusX · · Score: 1

      I agree, whole heartedly. Having migrated from windows to beos to linux and finally settling down to macOS X last year, I had a lot of porting to do, since still I'm using some code/apps I wrote 7 years ago for windows. In the beginning I also believed in cross-platform toolkits and when I was on linux, Qt was king.

      But when I came to mac I realized these toolkits are skin deep only, and you're absolutely right: on mac, at least, there's so much more than the appearance. There's *RICH* MVC, there's services, there's the elegant document model, and so on. When you write a program for Mac, you're writing a component for the whole system, really. It *has* to integrate or else it's a wallflower.

      Fortunately, all my code, even the complex gui programs ( particularly my white-whale robotics work ) is standard & portable c++; the GUI is just a wrapper for the internals. That way I can write a fully native gui, taking advantage of what Cocoa has to offer ( thank god, btw, for Objective-C++ ) and my core code, all 25kloc worth, is unchanged.

      What I'm getting at is that for a lot of situations it makes sense to write a core model in portable c or c++ and then write a fully native gui to wrap it.

      There are places this approach won't work... I imagine programs like flash which have such a rich interface between the document model and the interface would probably be hard to make a clean separation for, but since both windows and mac versions exists it obviously doesn't stop Macromedia.

      Anyway, that's just my 2c.

      --

      lorem ipsum, dolor sit amet
    6. Re:Some reasons to use an OS' native toolkit by Phisbut · · Score: 1

      You are unfortunately right on that. However, sometimes, when developping a commercial application, one needs to shorten development time as much as possible. Using a cross-platform toolkit does that by not requiring to do the same things many times for many platforms.

      The company I work for at the moment develops its apps for both Windows and Mac, using MFC on Windows and Cocoa on Mac. The main development tree is on Mac, and when the next version is ready, we have to port it to Windows, working with MFC this time, and then fixing stuff that goes wrong because MFC doesn't do things as Cocoa does them and stuff.

      We're currently studying the possibility to start supporting Linux... If we go for yet another native toolkit, we would have to port the GUI twice for every version we develop. That not only increases development time, but it also screws the budget. I am currently trying to convince my boss that Qt is the way to go, because having to do stuff only once instead of thrice will let us work much more on the core functionality of our app instead of spending so much time working on the native GUI on each platform every time.

      So yeah, native toolkits will always look better, but they are not always the right solution. If you consider building a commercial app that you will distribute on a single platform (be it Windows or Mac or whatever), then go ahead and use the native toolkit, but when you have to port the same app to different platform, a cross-platform toolkit might just be the happy-middle you need.

      --
      After 3 days without programming, life becomes meaningless
      - The Tao of Programming
    7. Re:Some reasons to use an OS' native toolkit by Trejkaz · · Score: 1

      Oh, okay. I assumed it didn't because it doesn't proxy the native toolkit on Windows.



      In that case I would like a better explanation of how the "feel" is different, if it really is proxying the native toolkit. All the spell checking would work, and I don't see the original complaint working in light of this new information.


      --
      Karma: It's all a bunch of tree-huggin' hippy crap!
    8. Re:Some reasons to use an OS' native toolkit by Brandybuck · · Score: 1

      In that case I would like a better explanation of how the "feel" is different

      That's because it's still Qt, and not Carbon or Cocoa. All it's using are the native widgets, not the framework underneath them.

      Some things will necessarily get the OSX "feel", like the print dialog, which is the actual native print dialog. But there's nothing stopping the Qt developer from putting the dialog buttons in non-OSX locations, or remapping keystrokes, for some trivial examples.

      --
      Don't blame me, I didn't vote for either of them!
  16. /s/non-commercial/non-proprietary by abe+ferlman · · Score: 4, Informative

    The GPL'd code can be used commercially. In fact, it would VIOLATE THE GPL if they said it couldn't be used commercially. Indeed, most of the software in the linux distro box on my shelf is licensed under the GPL, and I paid good money for it.

    What it can't be is proprietary.

    I know Slashdot is not known for precision, but on an issue that gets everyone so worked up it's foolish to provoke people like this for no good reason.

    --
    microsoftword.mp3 - it doesn't care that they're not words...
    1. Re:/s/non-commercial/non-proprietary by Buck2 · · Score: 1

      that's what precision and accuracy are all about

      --

      As my father lik@(munch munch)... ....
    2. Re:/s/non-commercial/non-proprietary by be-fan · · Score: 1

      (with-french-accent (say "Accuracy and precision!"))

      --
      A deep unwavering belief is a sure sign you're missing something...
    3. Re:/s/non-commercial/non-proprietary by Anonymous Coward · · Score: 0

      It can't be sold commerically though. Well, it can, but you can't limit redistribution which pretty much kills the whole point of selling it.

      Even if you don't mind open-sourcing your application for sale it still won't work.

    4. Re:/s/non-commercial/non-proprietary by Anonymous Coward · · Score: 0

      Hi, sorry for the offtopic question but can I get an explaination as to what "/s/non-commercial/non-proprietary" means? Some kind of unix string-replacement-thing? Seen it a few times now...

    5. Re:/s/non-commercial/non-proprietary by rmohr02 · · Score: 1

      In Perl, you can replace text that matches a regex in a string with '$string =~ s/regex/replacementText/'.

    6. Re:/s/non-commercial/non-proprietary by rmohr02 · · Score: 1
      The GPL'd code can be used commercially. In fact, it would VIOLATE THE GPL if they said it couldn't be used commercially.
      How would it violate the GPL--if Trolltech said it couldn't be used commercially, that's their prerogative. They can even release it under the GPL, with the stipulation that it not be used commercially. This wouldn't make much sense, as there are better licenses for this, but it certainly is possible.

      Besides, if they are violating the GPL, are the copyright holders going to sue them? While Trolltech's legal department might like the extra attention, I doubt they're going to sue themselves.
  17. Somewhat OT: Something smaller than Qt3? by rthille · · Score: 2, Interesting

    From the FAQ:
    Qt/Embedded can be configured to for ROM requirements between 800k and 3M, depending on what features are enabled.
    I'm working on a new software load for the Ceiva (ver 2), and 800k ROM just for the graphics is way to heavyweight.

    --
    Awesome furniture, accessories and cabinetry in Santa Rosa, CA: http://humanity-home.com/
    1. Re:Somewhat OT: Something smaller than Qt3? by Anonymous Coward · · Score: 1, Interesting

      Fltk is what you want. Qt's pricing sucks ass anyway.

  18. Stop. by Anonymous Coward · · Score: 0

    The only reason to use such an API (rather than coding natively) - is cross-platform support. If you want that, use wxWidgets instead (because there is no GPL version of Qt for Windows).

  19. How does Qt programming compare with Gnustep? by Lord+of+the+Fries · · Score: 2, Interesting

    I've done a little Gnustep programming... is there anyone who's done both who can give a comparison? Would I be happier doing Qt?

    --
    One man's pink plane is another man's blue plane.
    1. Re:How does Qt programming compare with Gnustep? by CoolMoDee · · Score: 2, Interesting

      being a Cocoa programmer myself, my guess is, maybe. Once having developed the *step way, I find it a pain to prgoram in environments that aren't message based (such as ObjC/*Step). One thing is for sure though, developing in QT would make your programs look normal in the average linux user's envionment, and would look prettier. Of course the horinztal menu patch could change part of that.

      --
      Jisho - A Japanese English German Russian French Dictionary for the rest of us.
    2. Re:How does Qt programming compare with Gnustep? by CoolMoDee · · Score: 1

      I find it a pain to prgoram in environments that aren't message based (such as ObjC/*Step)
      er.. make that C++/QT or in my experience Java/Swing

      --
      Jisho - A Japanese English German Russian French Dictionary for the rest of us.
    3. Re:How does Qt programming compare with Gnustep? by Anonymous Coward · · Score: 0

      Definitely not.

      I won't elaborate much, but the GNUstep people are good people.

      Qt is like the Dark Ages in comparison.

      Good luck.

  20. Qt is not my favorite toolkit by Anonymous Coward · · Score: 0, Interesting
    I'm posting anonymously for obvious reasons.

    I'm a Teaching Fellow (TF) at Harvard, and I am involved in teaching programming usable interfaces to students, and setting them assignments.

    Back in 1999, when Qt was the only toolkit of note, I suggested that an assignment in Qt would be in order. I underestimated the grief that this would bring me.

    1. Object orientation as a language prescription is a bad idea: At the time, every other GUI programming method used messages. From Xlib through to Win32, all GUI programming methods use messages. It is considerably easier to thread a program that does not have a GUI wrapped up inside of a object than one that does not.
    2. Object orientation brings bloat: often students would go way overboard in designing a solution, using 30 classes where 5 would suffice. At the end of the course, I wanted to take my bat object and call bash on their skull object.
    3. Compilers are not good at OO: compared to C, C++ compilers are immature and buggy. Sure, this is a compiler issue not a toolkit issue, but I found it frustrating debugging student's choice of compiler rather than choice of code.

    Thankfully, the GTK+ toolkit is winning the battle of the GUI toolkits. Students these days feel much more grounded in reality when they see their favourite applications such as mozilla, gaim, xchat, and xmms using the same toolkit they do.

    1. Re:Qt is not my favorite toolkit by Anonymous Coward · · Score: 0

      I beg to differ on point 3. There are several C++ compilers now that do a very good job of turning (well written) C++ into code that often runs faster than the same thing in (well written) C.

      I hope you're not basing your assessment on compilers of 1999 (five years ago), because g++ is now a very mature C++98 compiler.

      Cheers! :-)

    2. Re:Qt is not my favorite toolkit by be-fan · · Score: 4, Insightful

      At the time, every other GUI programming method used messages. From Xlib through to Win32, all GUI programming methods use messages.
      Agh! Xlib and Win32 are horrible GUI APIs! At least Xlib isn't largely at fault --- its not meant to be a full GUI API. Win32, however, has no excuse! Are you honestly telling me you think that Win32 (with its 200 line GUI hello world), is more sensical than Qt???

      It is considerably easier to thread a program that does not have a GUI wrapped up inside of a object than one that does not.
      Not really. Multi-threading fits pretty naturally with OOP. Look at the BeOS API (which has a lot of parallels with Qt) sometime. Could you give more detail on why you think this is the case?

      Object orientation brings bloat: often students would go way overboard in designing a solution, using 30 classes where 5 would suffice.
      That's because students, by and large, are stupid. That's why they are in school, to learn. You should have taught them to only use classes when they naturally fall out of the design of the program.

      Compilers are not good at OO: compared to C, C++ compilers are immature and buggy.
      That was true for the STL and templates, but Qt doesn't use the STL. Qt was very well supported on the compilers of the time. Again, specific examples?

      Thankfully, the GTK+ toolkit is winning the battle of the GUI toolkits.
      Really now? Seems pretty even to me.

      Students these days feel much more grounded in reality when they see their favourite applications such as mozilla, gaim, xchat, and xmms using the same toolkit they do.
      Bah! My favorite apps (Konqueror, Kopete, Ksirc, and Amarok) use my favorite toolkit (Qt).

      --
      A deep unwavering belief is a sure sign you're missing something...
    3. Re:Qt is not my favorite toolkit by Anonymous Coward · · Score: 0

      Object orientation as a language prescription is a bad idea: At the time, every other GUI programming method used messages. From Xlib through to Win32, all GUI programming methods use messages. It is considerably easier to thread a program that does not have a GUI wrapped up inside of a object than one that does not.

      That doesn't make any sense. Why is threading an object difficult?

      Object orientation brings bloat: often students would go way overboard in designing a solution, using 30 classes where 5 would suffice. At the end of the course, I wanted to take my bat object and call bash on their skull object.

      You must not be a very effective teacher. Bad code can be written in any language.

      Compilers are not good at OO: compared to C, C++ compilers are immature and buggy. Sure, this is a compiler issue not a toolkit issue, but I found it frustrating debugging student's choice of compiler rather than choice of code.

      It's 2004 not 1994. Try a modern compiler.

    4. Re:Qt is not my favorite toolkit by Anonymous Coward · · Score: 0

      You're more likely posting it anonymously because you are a troll, no ?

      Disclaimer: I'm not a fan of C++, yet I know its advantages and if I want to use it for a project -- or not. Qt is actually a rather nice GUI framework (thanks to signals/slots !), with in fact many similarities to the NeXSTEP framework. Qt got nice characteristics: it's mature, cross-platform, and it's quite easy to write applications for it.

      Your #1 comment isn't that relevant with Qt -- it could be with other OO toolkits. Your #2 is half-true; yes, students tends to make design errors -- after all, they ARE students ! But OO gaves you a much better design when you had practiced a bit, I really don't know anybody that could argue the contrary. #3 ... well, #3 is also half-true. Sure, C++ compilers are more complicated. But frankly, thoses #2/#3 comments seems to come directly from 1992 !!!

      In any cases, for the record, my preference won't go to C++/Qt -- NO. But simply to Objective-C/OpenStep, that is, either GNUstep implementation (crossplatform) or Cocoa implementation (Apple, OSX, directly from NeXT).

      Yet, Qt is a good toolkit, and depending of the work/platform, it could be my choice (well... at least until GNUstep catch up on win32... which could be not that far !)

    5. Re:Qt is not my favorite toolkit by Gauchito · · Score: 5, Insightful

      often students would go way overboard in designing a solution, using 30 classes where 5 would suffice

      You were their teacher? Guess who's fault this is.

    6. Re:Qt is not my favorite toolkit by Anonymous Coward · · Score: 0

      Sorry, mister teaching fellow at Harvard, but you're full of shit, and you scare me - to think the resources at that uni are so pathetic.

      All three of your statements are wrong. There's little reason to elaborate, because it's so bleeding obvious to anyone who has the experience you so ostensibly and sorely lack.

      Calling Win32 a 'messaging system' is pulling it - and if you knew a bit more what you are trying to talk about, you would know why. Win32 is no more a messaging system than a Ford is a Rolls Royce.

      Compilers are damned good at OO - and what is OO? Your statement is so incredibly ridiculous. Nobody is going to claim C++ does well, but that's not your argument here, is it? And C++ - and Objective-C - are preprocessor ends on C, and the code goes logically through C at the end of the day, and if you code properly (which I doubt you would know how) then you do not get bloat.

      Your equating C++ with OO is perhaps the most ridiculous of all your self-absorbed, pompous statements: C++ is not even an OO language! It's a language that can lend itself to a rather pathetic level of OO, but it is definitely not OO.

      You'd know what I am talking about if you had a clue, mister teaching fellow at Harvard, but you're the stereotypical reason IT grads still have so much work to do when they leave your ivy covered buildings.

    7. Re:Qt is not my favorite toolkit by zorander · · Score: 3, Insightful
      At the time, every other GUI programming method used messages.

      I don't know what it is that you're calling a message, but the MacOS X (previously NextStep) api (around since 1989, yes with an eight) has been using method calls (termed messages on objc) since the early days.

      Most GUI programming environments work through some form of callbacks. Qt is no exception, though signals and slots are sort of like callbacks on steroids (and definitely more akin to the messages in the NS api than anyhting else, again, your usage of messages is somewhere between narrow and uninformed)...GTK also has callbacks, as does Tkinter, both which have been around.

      Today's C++ compilers are generally nearly as fast and stable as their C counterparts. Seriously, they've been stable since at least 1999, and the good ones were stable before that. Qt deliberately created moc and avoided the STL to dodge the sketchy C++ issues of the early days so it was never much of an issue. Quite frankly you should be making the compiler choice for your students and suggesting that they work in a campus lab set up for it if they don't feel like dealing with compiler issues. You should be able to test an environment before they do. As the teacher of the course that is your responsibility.

      GTK+ is in no way winning. Qt is a much much cleaner implementation of GUI (somewhat comparable to the object oriented GTK wrappers, except it also provides the foundation classes that GTK lacks). Qt is also a win for portability as it provides a common layer for a large range of functionalities from networking to GUI to openGL across the three major platforms. Last time I checked, gtk2 for windows was less than perfect and a native gtk2 port for mac os X is not even on the horizon yet. is Gnome very popular? yes. is KDE? yes. They're both out there and they're both up there. Just cause you prefer gnome doesn't mean that it's time to declare a winner.

      You're making some awfully harsh statements here that appear to have no real backing. Yes you tried to teach Qt and failed. perhaps the student's weren't ready for it? perhaps your campus computing environment wasn't ready for it? perhaps you weren't prepared to teach it? I wouldn't go blaming the GUI toolkit first thing.

      Brian

    8. Re:Qt is not my favorite toolkit by Anonymous Coward · · Score: 0

      I'm posting anonymously for obvious reasons.

      Yes, you are trolling.

      I'm a Teaching Fellow (TF) at Harvard,

      No, you are not, you are cutting and pasting a troll almost as boring as "fact - BSD is dying!"

    9. Re:Qt is not my favorite toolkit by rikkus-x · · Score: 4, Insightful
      I'm posting anonymously for obvious reasons.

      Because you are a coward?

      I'm a Teaching Fellow (TF) at Harvard,

      How awfully nice for you. May we therefore assume that you're more clever than the rest of us?

      Object orientation as a language prescription is a bad idea: At the time, every other GUI programming method used messages. From Xlib through to Win32, all GUI programming methods use messages. It is considerably easier to thread a program that does not have a GUI wrapped up inside of a object than one that does not.

      Qt uses messages. Did you really use Qt or are you making this up?

      What makes it easier to thread a program that does not 'have a GUI wrapped up inside of an object' [sic]?

      Object orientation brings bloat: often students would go way overboard in designing a solution, using 30 classes where 5 would suffice.

      What is so terrible about having a large number of classes? Only the most novice (OO) programmers I've met shy away from creating more than the 'bare minimum' of classes.

      What does this have to do with Qt, anyway?

      Compilers are not good at OO: compared to C, C++ compilers are immature and buggy. Sure, this is a compiler issue not a toolkit issue, but I found it frustrating debugging student's choice of compiler rather than choice of code.

      This is plain wrong. There are some great C++ compilers out there and some servicable ones. Intel's C++ compiler and GNU G++ are examples of the former, Microsoft's of the latter. Why did you let students choose their own compiler?

      Thankfully, the GTK+ toolkit is winning the battle of the GUI toolkits. Students these days feel much more grounded in reality when they see their favourite applications such as mozilla, gaim, xchat, and xmms using the same toolkit they do.

      That first sentence is flamebait; the second is inaccurate. Mozilla isn't built on GTK+: perhaps you meant Firefox?

      The parent post smells funny. I call shenanigans.

      Rik

    10. Re:Qt is not my favorite toolkit by tequesta · · Score: 2, Interesting

      First of all, what keeps you from combining object orientation and messages? An event is a message that gets placed in a queue and taken out sometime later and delivered. Objects register for the events they want to receive. Perfectly threadable, perfectly object-oriented and moreover perfectly obvious to understand.

      Second, if your students over-design, maybe you're doing something wrong as a teacher? I'm a research fellow at a German university and teach students myself. It's true, it takes a while for them to "grok" OO. But once they do, it's the most obvious and simple concept there is.

      Third, you base your statement that "compilers are not good at OO" on current C++ compilers. Well, (although this is a Qt thread) C++ is not the only object-oriented language around, and I agree it's certainly one of the hardest to learn. For a programming course that's about concepts (such as "usable interfaces"), you probably don't want problems with the language get in the way of the students. After a student has the concepts down pat, it's easy to write them in a different language, even an unwieldy monster such as C++.

      For alternatives, check out Objective-C or Smalltallk (maybe even Java) sometime. They're both excellent languages for learning object-oriented programming, and the language doesn't get in your way (maybe Smalltalk even less than ObjC). Once the students have understood what OO and good GUI programming is all about, they can always learn C++ if they feel the need. It's only a language. But be warned, they'll probably balk at C++ once they've seen how nice a language can be.

      Fourth, C++ compilers (especially gcc) have improved a lot during the last couple years.

    11. Re:Qt is not my favorite toolkit by Anonymous Coward · · Score: 0

      > Mozilla isn't built on GTK+: perhaps you meant Firefox?

      If you're running on Linux, do a ldd on mozilla-bin. Or even better, remove gtk+ and see if mozilla still runs :-)

    12. Re:Qt is not my favorite toolkit by YOU+LIKEWISE+FAIL+IT · · Score: 1
      At the end of the course, I wanted to take my bat object and call bash on their skull object.

      I used to tutor Introduction to Object Oriented Programming at UTS, and this figure of speech made me laugh harder than anything else I've read today.

      --
      One god, one market, one truth, one consumer.
  21. What you really, really should do... by Dog+and+Pony · · Score: 2, Interesting

    ... is give these guys a hand up: QT 3 Win32- this project would be totally awesome would it be done!

  22. Where's VB for unix by superpulpsicle · · Score: 4, Interesting

    Wasn't there a bunch of development on Visual Basic for unix platforms at one time with syntaxes similar to M$ VB from Visual Studio?

    Whatever happen to that?

    1. Re:Where's VB for unix by Anonymous Coward · · Score: 1, Interesting

      You might want to check out the Gambas Project at http://gambas.sourceforge.net/

    2. Re:Where's VB for unix by Espectr0 · · Score: 1

      Do you mean RealBasic?

  23. Re:wow! we are at the python/java/.NET era! by Anonymous Coward · · Score: 0

    What ?

    Qt does use templates rather extensively.

    http://www.warmi.net/docs/qt_3_0_5/tools.html

  24. Re:WHEN WILL YOU TEABAGGERS GET IT?? by Anonymous Coward · · Score: 1, Funny

    What happened to Signal 11?

  25. Re:wow! we are at the python/java/.NET era! by Anonymous Coward · · Score: 0

    Take a gander at the subject of the post...

  26. Just the way it is. by Anonymous Coward · · Score: 0

    KDE and Apple both have their zealous defenders and will not tolerate legitimate critcism. Mentioning Apple's long term friendly relationship with Microsoft and KDE/Qt/Trolltech's relationship to SCO and the Canopy group are grounds for getting scored as "trollbait". They are pretty vicious in their suppression of worthwhile discussions of the issues and any comment that is not contributing to a lovefest to KDE or Apple will get smacked.

    Obviously there are some embarassing truths about Apple and KDE that they don't want to get reminded of but you're better of posting them to a Gnome or Linux story.

    1. Re:Just the way it is. by Anonymous Coward · · Score: 1

      Nothing to hide.

      Canopy, (not SCO) owns 5% of Trolltech. There is no relationship with Microsoft.

      The best reason to use Qt isn't the cross platform, its the amount of time (and hence to a lot of people) money it will save you.

      I get pissed of a zealots that insist on spreading FUD about Qt the same way SCO spreads FUD about Linux.

      FUD is FUD. whether you are slinging it or having it slung at you. So please think before slinging, and CHECK YOUR F**KING FACTS.

  27. It can be more than that. by Anonymous Coward · · Score: 0

    Try $2.5K if you want to be able to do ActiveX (Enterprise Edition).

    Not to mention that it is licensed "per developer, per year".

    Makes other full-blown development environments (from Borland or MSFT) look dirt cheap by comparison.

  28. ...and C++ is not my favorite language by Ars-Fartsica · · Score: 0, Flamebait
    Never was there a language so misused, so misunderstood. Never has a tool given developers so much rope to hang themselves with...in fact perversely designed to make the dnager outweigh the benefits for most designers.

    And to think people think Perl is bad - ever try reading someone else's C++?

    But maybe it isn't so bad, after all C++ comes standard with a a great networking library, an awesome database access architecture, and neat security tools. Oh wait...

    The best thing you can hope for in any software market is that your competitor make it a priority to code everything in C++.

  29. wxWidgets - fully free Qt alternative by georgevulov · · Score: 5, Interesting

    Those looking for a fully free C++ toolkit should consider wxWidgets. With its superb sizer layouting system, rich api, native look, and great support (You often get replies from the authors themselves on the mailing lists), it is one of the best free toolkits around.

    Now, with the new partnership between wxWidgets and Borland, wxWidgets is likely to develop even more rapidly.

    Though wxWindows is free, unlike the free version of Qt it is not GPL, thus it can be used for commercial software development without worry.

    --
    TerraIM - my pet AIM client project.
    1. Re:wxWidgets - fully free Qt alternative by Anonymous Coward · · Score: 1, Informative

      Tried it.
      Works for basic stuff but it seems relatively crude and unfinished as soon as one attempts to write some more complicated stuff.
      Documentation is less than perfect compared to Qt docs ( still it is much better than in majority of Free projects)

      I hate their event handling - event tables are a nightmarish variation on MFC event handling style.
      Signal/Slot model used by QT is a pure genius compared to this stuff.

      wxWindows is definitely better than GTK or Motif but if Qt is an option for your project, there is simply no comparison.

    2. Re:wxWidgets - fully free Qt alternative by master_p · · Score: 2, Interesting

      You forgot to tell a few things:

      1) WxWindows break OO principles by using message maps; in other words, you don't overload a method, you define which callback to call using an id through a table. Message maps is a major reason why MFC sucks.

      2) There are quite a few bugs in it.

      In my opinion, not everything should be without price. Since Qt is the best toolkit there is, Trolltech deserves to get rich (hey, even BillG got rich from the horrible kludge that is WIN32).

    3. Re:wxWidgets - fully free Qt alternative by Stele · · Score: 1

      I looked wat wxWidgets, as well as several other LGPL toolkits, and bought a commercial license of Qt anyway.

      IMO, Qt's design is far superior to wxWidgets, simply because it doesn't model after the Windows message-map concepts which totally break encapsulation.

    4. Re:wxWidgets - fully free Qt alternative by WWE-TicK · · Score: 2, Insightful

      > 1) WxWindows break OO principles by using message
      > maps; in other words, you don't overload a method,
      > you define which callback to call using an id
      > through a table. Message maps is a major reason
      > why MFC sucks.

      You have two choices with respect to connecting events to event handlers in wxWidgets:

      1. Use the aforementioned MFC-style message maps.
      2. Use the Gtk/Qt signal/slot-style wxEvtHandler::Connect() method.

      MFC-style message maps are more prevalent in the documentation, however. But if you don't wanna use them, you don't have to.

    5. Re:wxWidgets - fully free Qt alternative by master_p · · Score: 3, Informative

      Use the Gtk/Qt signal/slot-style wxEvtHandler::Connect()

      Qt's Signals and Slots and wxEvtHandler::Connect() are two entirely different things:

      wxWindows requires connection to have a valid id number, which means a mess of ids in the first place. Qt's signals and slots does not require ids. Keeping track of ids is a nightmare, especially if you delete some.

      wxWindows connects functions to events, not methods to methods. With wxWindows, can't call an object method directly.

      Can't call private methods unless callback function is made friend to a class; which means callback function is visible to end-user (i.e. non-static).

      wxEvtHandler::Connect() is not typesafe: any wxObject-derived instance can be passed as user data. Qt's signals and slots and GTK's templated signals are much safer.

      Only events can be connected in WxWindows; which means you have to define event data structures, event ids, etc. In Qt, it could not be simpler: connect a method marked as signal to a method marked as slot.

      Using Connect() does not mean there are no message maps. In fact, all Connect() does is create a message map dynamically. Which means lots of wasted memory, memory fragmentation etc., slow execution etc

      Connect() callbacks accepts specific arguments; Qt's signals and slots accept any argument, just like a normal C++ function.

      Can you still claim that wxWindows are equivalent to Qt ? the callback task is much more time-consuming in wxWindows than in Qt. With Qt's signals and slots, one can make beautiful Model-View-Controller architectures; can't say the same with WxWindows.

  30. Visual Component Framework by Space_Soldier · · Score: 1, Interesting

    For those of you that do not know, there is Visual Component Framework (VCF) at vcf.sf.net. The author of VCF is in the same boat as many of you. He likes Qt very much, bud does not like the price associated with it, thus he created VCF which has the goal of working on Windows, Linux, and Mac OS X. Right now it works on Windows, parts of it work on Linux and OS X. VCF is free and has the BSD licence.

  31. Re:wow! we are at the python/java/.NET era! by Anonymous Coward · · Score: 0

    You might be in the python/java/.NET era, Bucko, but that doesn't mean the smart people are. .NET? .NET??!?? Are you kidding?

  32. Check out Gnome/GTK+ -- WAS Re:Pricing by JInterest · · Score: 1

    Is anyone aware of OSS products similar to this?

    Gnome/GTK+ is available for Win32, although not as neatly packaged as for X11. Dropline has some Win32 packages that are easy to install. Tor Lillqvist has created some packages that a useful in conjunction with the MingGW environment. I believe that there is a Cygwin Project as well (see here but I can't testify as to its status. If you need an IDE, the Bloodshed IDE, Dev-C++, can download GTK+ packages for use within the IDE, and can help you automate integrating GTK+ in your apps. See here for information on the IDE.

    Gnome/GTK+ is GPL'd and truly "free software". wxWindows is another option, but someone has already posted regarding that, so I'll leave it to you to investigate your options and decide which you like best.

    1. Re:Check out Gnome/GTK+ -- WAS Re:Pricing by Brandybuck · · Score: 1

      Gnome/GTK+ is GPL'd and truly "free software".

      Just last week people were saying Gnome/GTK+ was truly "free software" because it was under the LGPL, while Qt was under the business-unfriendly GPL. Sheesh, you can't duck out for a minute in this community, or you'll miss the latest marching orders!

      --
      Don't blame me, I didn't vote for either of them!
    2. Re:Check out Gnome/GTK+ -- WAS Re:Pricing by anomalous+cohort · · Score: 1

      Cygwin is really great! It is free to use unless you want to include it in a non-GPL app. If you do, then it is very, very expensive.

  33. FLTK by Jmstuckman · · Score: 1

    The FLTK toolkit (Here) worked pretty well for me. I don't know how it compares with QT, but if you're doing basic GUI stuff, there really isn't anything missing. It is GPL for Win/Mac/Unix.

  34. Thats because it isn't by eean · · Score: 1

    The reviewer miswrote. Must of have been confused with the Windows non-commercial (essentially a trial) version of Qt.

    You can sell KDE (example: most commercial Linux distributions.) You can sell GPL Qt applications.

    Nothing to see here. Move on folks.

  35. Re:Source of the books by zero0w · · Score: 1

    Bruce, I checked the page for accessing the source of the books under Open Content License:

    http://phptr.com/Perens

    However, it seems to me the source of "The Official Samba-3 HOWTO and Reference Guide" is screwed. I downloaded the file but there's nothing there about the actual content of the book, and there are 5 missing chapters from Samba.org.

  36. Re:BAG FUCK A HAIRPIECE RUMBA CANOPY!!!! by Anonymous Coward · · Score: 0

    my thoughts exactly

  37. Re:Source of the books by Bruce+Perens · · Score: 2, Informative
    Hm. Please send a specific complaint about the phptr.com version to jht@samba.org (John Terpstra). In the meantime, I think you can go in the Samba CVS and find the "master" copy of the book source there.

    Thanks

    Bruce

  38. Re:Source of the books by Bruce+Perens · · Score: 1
    Oh, sorry. It took me a minute to understand the second part of your message. It may be that 5 of the chapters aren't in the Samba CVS yet, but will be soon.

    Thanks

    Bruce

  39. It's a complete fuck-up. by Kjella · · Score: 1

    There's the open QT/X11, which is GPL'd. No commercial restrictions apply.
    There's QT/Windows non-commercial, which is included with the book.
    There's QT/X11 & QT/Windows commercial (for making closed-source apps), which are not included with the book.

    Any clearer now?

    Kjella

    --
    Live today, because you never know what tomorrow brings
  40. Re:So, if I understood correctly..... by botzi · · Score: 3, Interesting
    ...C++ is bad because its complex??? Sharpen up.
    C++ is *the* language, complex - sure enough, misunderstood - even more sure, 90% of today's CS stuff is drawned in its own mediocricy - count on that!!! this was one of the best books on programming languages I've ever read and if you're capable of understanding 50% of it you're sure to change your opinion on the language. Oh and...

    ...ever try reading someone else's C++?

    Yes, as well as C, Lisp, Java, PHP...etc. And for all those cases I found the following statement true: as long as the person who's wrote it is a <language name here> programmer and not someone *forced* to do the job in <language name here>, it will be a joy to read - in all the other cases the code readability depends on writer's & reader's intelligence.

    --
    1. No sig. 2. ???? 3. Profit!!!
  41. Re:This is a troll! by Anonymous Coward · · Score: 0

    Please mod down to where he belongs!

  42. The Independent Qt Tutorial by Xhargh · · Score: 2, Informative

    If you already know C++, then it might be a good idea to check out the Independent Qt Tutorial.
    http://www.digitalfanatics.org/projects /qt_tutorial/
    (but without those spaces in the URL)

  43. Re:wow! we are at the python/java/.NET era! by Oestergaard · · Score: 1

    Done that. Got marked "offtopic".

    Still don't see how I wasn't on topic.

  44. It's LGPL by iamacat · · Score: 1

    With an exception for static linking. Makes a big difference for commercial development, although geniuses in my company decided that even using public domain code is illegal without a "license". Think I can make a quick buck selling licenses for BSD sources and textbook examples?

  45. Re:wow! we are at the python/java/.NET era! by master_p · · Score: 2, Funny

    And programming, generally, is ...so sixties!!! (where is my AI bot to write programs for me ?)

  46. Rubbish by ultrabot · · Score: 1

    Don't want to give, don't take.

    This is pure nonsense. More OSS use = good, even if only a tiny fraction gives back.

    I don't see why some domain specific project should be open sourced - it would mostly benefit the competition of the company, while being completely worthless to the Open Source community at large.

    We need lots of friends in proprietary software scene. There are lots of respectable proprietary companies out there.

    People like you really piss me off. "They world owes me a job, the world owes me free music, the world owes me free software... But I owe the world nothing, it should pay me for my stuff"

    People are free to think so, right?

    Sigh. If you can't afford the license cost your software must be pretty sucky anyway, as thats barely a couple of months wages.

    $2400 buys you a lot of beer, dontcha think?

    --
    Save your wrists today - switch to Dvorak
  47. Re:It's LGPL - with exception by Guardian+of+Terra · · Score: 0

    FLTK license is LGPL with *strict* allowance of static linking to proprierary apps.

  48. Rip off Britain by Anonymous Coward · · Score: 0
    I am on travel the UK at the moment, so I checked the price of this book at amazon.co.uk, it cost a whopping 35.99 ($64). So I then checked amazon.com and discovered that at home (US) it costs $31.49.

    Even allowing for the weak dollar and the 17.5% sales tax the Brits enjoy (!!!), the UK pricing is simply ridiculous. I simply can't understand why the British public puts up with it. This kind of pricing is considered normal in the UK for just about everything, including food, and the public seems happy to pay.

    There would be rioting in the streets if they tried British pricing in the USA. Britain is a strange place.

    1. Re:Rip off Britain by g0bshiTe · · Score: 1

      That's why we had a tea party in Boston. Taxation Without Representation.

      You know like the Bush Administration does.

      No pun intended! Seriously.

      --
      I am Bennett Haselton! I am Bennett Haselton!
  49. I agree by Kjella · · Score: 1

    I've tried a lot of languages, from Basic (on C64, QBasic and Visual Basic...), C++ to Java and a few other, different toolkits (even MFC) and I've come to like C++/Qt very much. It makes C++ essentially feel like a much higher-level language.

    Yet if you need to drop out of the Qt system for speed or some other reason, you can start doing your own memory allocation, pointers and whatnot. All the (ugly) power of C++, all the higher-level encapsulation of Qt, with one language syntax, one IDE (KDevelop 3 is nice btw).

    As long as what you want is Linux/GPL, it's the best toolkit there is, in my opinion. You can tell by all the whiners complaining you can't use it for free for closed-source programs or on Windows...

    Kjella

    --
    Live today, because you never know what tomorrow brings
  50. Like Canopy representatives on the board ? by Anonymous Coward · · Score: 0

    The guy behind the SCO suit on Linux sits on the board of directors of Trolltech ????

    Who's spreading FUD with their posts?

    Who's hiding stuff?

  51. 800k ROM just for the graphics by wiredog · · Score: 1
    QT would be used where you wanted a very rich interface, and fitting that into 800k is amazing.

    Now, yeah, if you only have 400k then you don't want QT. You want something that's much lighter and has fewer features. But that's the nature of embedded programming and something that people who've never done it understand. You're highly constrained by the platform. Just as we were back in the day when 640k was all you had for os, code, and data on a 16 bit platform.

    1. Re:800k ROM just for the graphics by rthille · · Score: 1

      Exactly. and the other reply pointed me at fltk.org, which is also way more that I need, but may be modular enough that when I just link in the routines I need it may be small enough.

      --
      Awesome furniture, accessories and cabinetry in Santa Rosa, CA: http://humanity-home.com/
  52. preview is my friend... by wiredog · · Score: 1
    something that people who've never done it don't understand

    arrgh.

  53. It's the Licensing, Stupid!! by Emor+dNilapasi · · Score: 1, Troll

    I would love to develop stuff with QT. Free stuff, hopefully useful stuff, that's just a compile away from being cross-platform. But unfortunately, there's just a leeetle fly in the ointment, one teeny-tiny reason why I cant:

    Because it would cost me over $2000 just to TEST the damn thing!!!

    You see, for various reasons I'm stuck on a Win32 development platform right now. I have access to Linux boxes, and I'd love an excuse to get another Mac, but for the time being I'm doing all my grunt work on Windows. So in order to actually do anything useful, I'd have to do at least the initial development under Windows. And that's gonna cost me. Sure, I could download the 30-day evaluation, but that puts a "Buy Me Dammit!" window up on every app, and stops working after 30 days. Not exactly conducive to development flow, eh? But if I want to see what it should look like, I'm out to the tune of $1500. And if I wanted to also test it on a Mac, well, that's $2500. At least there's a $500 discount for two platforms.

    Hey Trolltech, if any of you are listening, may I respectfully make a suggestion?

    You mention on your site that the reason the Linux versions are free and the Win32/Mac versions aren't is that you want to foster Linux development. Well, that's a nice sentiment, but you're going about it exactly the wrong way. The best way to get people to move to Linux is to give people who already use Windows really cool FREE applications that run on Windows but that also happen to run JUST THE SAME on Linux. And do the same for the Mac. That approach eliminates the major migration barrier of "but can I run my application on Linux?" Because with QT apps the answer would be "sure, no problem".

    But the only way this would happen would be if the tools to create these cross-platform goodies were accessible to the legions of individuals and small groups who write them. And right now, the price tag puts the price of developing even free Windows and Mac programs out of their reach. So you're left with the ability to create really nice free stuff for Linux that the Windows and Mac users will NEVER EVER HEAR OF. They'll never get used to those free applications, they'll never get to like those free applications, they'll never ever realize that they can have their favorite free applications WITH the benefits of Linux. And that is the biggest shame of all, because it does nothing to promote Linux.

    So my suggestion to you is to please Please PLEASE open up your licensing just a little to provide free Win32 and Mac toolkits, just like you do for Linux, to create non-proprietary applications. Please understand that I have no quarrel with your current (and eminently fair) prices for development kits used for proprietary applications. But PLEASE open up your toolkit to the little guy who just wants to create something to give back to the community but is stymied by the price tag.

    1. Re:It's the Licensing, Stupid!! by smithmc · · Score: 1

      You see, for various reasons I'm stuck on a Win32 development platform right now. I have access to Linux boxes, and I'd love an excuse to get another Mac, but for the time being I'm doing all my grunt work on Windows. So in order to actually do anything useful, I'd have to do at least the initial development under Windows. And that's gonna cost me. Sure, I could download the 30-day evaluation, but that puts a "Buy Me Dammit!" window up on every app, and stops working after 30 days. Not exactly conducive to development flow, eh? But if I want to see what it should look like, I'm out to the tune of $1500. And if I wanted to also test it on a Mac, well, that's $2500. At least there's a $500 discount for two platforms

      Um, or, you could buy the book, which comes with a free/non-commercial version of the library. If you're trying it out, you'll probably want a book to help you out anyway, right?

      --
      Downmodding is the refuge of the weak. Don't downmod, make a better argument!
  54. Going back / forth GTK and QT by CresentCityRon · · Score: 1

    I'm interested in trying my hand at some QT work and this review makes it seem like this book is a good start for me. My concern is QT vs GTK and how much of my experiences will be useful if I change at some point. Whats the scoop?

    I'm not really interested in commercial application development - just learning.

  55. blah blah blah by Ars-Fartsica · · Score: 1
    Yes we've all read Josuttis (why do /. posters think that reading an established text must lead to advocacy???).

    The point is C++ introduces a ridiculous maount of complexity which its syntax does not handle very well. This is why C is still far more widely used after a decade of C++ advocacy - it is a better language for systems/library/platform development.

    Once again, I wholly support any efforts by my competitors to recode in C++. In a year when they are mired in debugging hell, I will have already cashed my checks.

    1. Re:blah blah blah by botzi · · Score: 1
      The point is C++ introduces a ridiculous maount of complexity which its syntax does not handle very well.

      Now that's some real crap. One point only C++ does not introduce complexity for noting. You got all the power for OOP you'll ever ask for(arguably CLOS excluded). I'll not try to convince you that it is possible to write safe or <your favourite code quality> here code , I know it is.

      This is why C is still far more widely used after a decade of C++ advocacy - it is a better language for systems/library/platform development.

      1. If you really believe C is more widely used, you definitely need to do a bit of research on the subject.
      2. Ridiculous to say C is better for library development.
      3.The reason, IMHO, for C to always stick around is one : the good(bad) habit of University stuff to translate everything to C code. C is the ultimate(not the better, but the most widely used) educational language.
      We may go on like that for ages, but it isn't worth it to discuss one of the crussades theme, however, to conclure on my part, I'd say that you really shouldn't blame the fact that your comptetitors would have a hard time to find a *decent* C++ programmer on the language.

      --
      1. No sig. 2. ???? 3. Profit!!!
  56. Qt and Windows Services for UNIX 3.0 by jweage · · Score: 1

    Anyone tried compiling the UNIX GPL'd Qt using Windows Services for UNIX 3.0? Could be an easy way to solve the Win32 GPL problem.

  57. tk by foog · · Score: 1

    I dunno, I like tk, but the times I've used it I've written my GUI in tcl, with the rest of my app as tcl extensions in C. So I don't think of it as an "API", in the sense that I've never tried calling tk from C or any other language besides tcl. It is indeed a little inflexible, but easy things are very easy and hard things can be written in C. What was "horrible" about it to you?

    It runs native on Windows and older versions of Mac OS, I'd have to look up whether it runs native on MacOS X.

  58. Re:Source of the books by Permission+Denied · · Score: 1
    Please send a specific complaint about the phptr.com version to jht@samb....

    That's rather heedless of you: you obfuscate your own email address on Slashdot but not someone else's?

  59. Re:Source of the books by Bruce+Perens · · Score: 1
    People like John and I have had our email addresses plastered over the entire net so much that it does not matter. If doesn't make a difference any more to post bruce@perens.com, they all have that URL.

    Bruce

  60. I second that suggestion. by voodoo1man · · Score: 1
    I first learned Python because I needed to quickly build a prototype application using Qt, based on some C++ source. The whole thing (including learning Python) took me just two days - granted, it wasn't very big (just north of 1k lines), but the Python version actually worked (the C++ project didn't), it worked quickly, and most impressively my Python code was not very much shorter than the C++ code but took me much less time to write and debug.

    Unfortunately, they wanted the thing in C++ (I don't know what this gained them besides bugs and the possibility of more bugs to come). The two things I learned from this experience are that PyQt is a very nice wrapper, and Python is a very good way to write C++ applications. From writing the C++ code, I learned that Qt is indeed an awesome toolkit from the vantage point of a C++ programmer, but unfortunately it is a bloated monster from the perspective of someone not lying in the gutter.

    --

    In the great CONS chain of life, you can either be the CAR or be in the CDR.