Stories
Slash Boxes
Comments

News for nerds, stuff that matters

Slashdot Log In

Log In

Create Account  |  Retrieve Password

In-Depth With Qt 4.4

Posted by kdawson on Tue May 06, 2008 05:26 PM
from the cute-and-brainy-with-it dept.
QtPi writes "Trolltech has announced the availability of Qt 4.4, the cross-platform software development framework. Ars Technica has an in-depth look at the release, which include an integrated WebKit-based HTML rendering engine, the new Phonon multimedia framework, support for Windows CE, and significant improvements to the QGraphicsView system. 'Qt 4.4 brings a lot of rich new capabilities to the toolkit that are sure to please open source and commercial software developers. It sounds like Trolltech already has some nice plans for Qt 4.5, and we will hopefully get to hear more about the long-term roadmap after Nokia completes its acquisition.'"
+ -
story

Related Stories

Submission: In-depth with Qt 4.4 by Anonymous Coward
This discussion has been archived. No new comments can be posted.
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More
Loading... please wait.
  • Graphics View alone is an extremely powerful tool - now it seems to be able to do things no other toolkit comes even close to. I can't wait to use 4.4 in an application I'm developing right now (a game map editor), this feature will allow me to make some parts of the user interface a whole lot simpler and more intuitive, throwing away a bunch of docks and toolbars in favor of a more interactive workspace.
    • You can do similar things with Swing but with a LOT more work. Also you'll feel like you're working against the system the whole time you're programming it. I bought a book called "Filthy Rich Clients" after seeing some stuff at JavaOne last year. I got half way through it and realized everything was a hack.
      • Re: (Score:3, Insightful)

        Yes, but this time it's implemented in something that people will actually use, and it's Open Source and cross platform.
  • Great as it is, I can't use it.

    On Linux the libraries are now so damn big that non-KDE users wont install them.

    On Windows the best development tools are moving away from C++.

    On Mac it's just plain ugly.

    I'm sure the embedded developers are loving it though.

    • libqt-mt is about 10MB on my system. That doesn't seem too ungainly, not to mention QT4 has made large strides into componentizing the library so it's not all just one huge library to load, you can load only the parts you want.
      • by Verunks (1000826) on Tuesday May 06 2008, @06:17PM (#23318658)
        libqt-mt is probably qt3 not qt4, but anyway qt4 provides a lot of things and nowadays disk space is not a problem, try to mix together gtk+libxml+webkit/gecko+many more things and you'll probably use much more disk space than qt4 with different api and with all kind of cross platform issue I don't understand your problem with windows, but qt4 isn't just c++, there are many bindings for python, ruby and even c# on mac os x qt4 looks good to me, there is even an alpha version of qt4 that uses cocoa instead of carbon
        • Re: (Score:3, Informative)

          on mac os x qt4 looks good to me, there is even an alpha version of qt4 that uses cocoa instead of carbon

          The problem is not the look, it's the feel. It is the way the toolbars work, dialog boxes, etc. It is the way all the pieces fit together to provide a user interface. Qt is impressive but it is not native.

          there is even an alpha version of qt4 that uses cocoa instead of carbon

          Cocoa and Carbon are actually the same thing. Just different APIs used to access the same elements. Qt adds yet another

    • On Mac it's just plain ugly.
      It looks native on Mac. I'm using it now. Sadly it isn't 64 bit yet, but that's slated for 10.5 .
    • Google Earth is based on QT and it's avalaible for Windows / MacOS X / Linux.

      I think that google engineers have studied several tools for developing this program for multiple operating systems and decided that QT was the best toolkit
    • Re: (Score:3, Insightful)

      While you are technically right on those issures, I'd dare to say they're, well, non-issues compared to what Qt offers, save for the Mac version ugliness.

      Frankly, I don't see any reasonable, sincere and unbiased way of arguing that a few megabytes more is enough to dismiss a toolkit completely.

      As for the Windows development problem, Visual Studio 2008 which is hailed even on Slashdot as the best (or at least one of the best) Windows IDE out there supports C++ just as well as other languages. So what did you
      • The reason for the size of Qt is that it is analoguous to the all-encompassing class libraries of Java and .NET, but in C++ world. Which is for the better - it is much more productive to have all the common, and even the less-so-common functionality readily available as needed. Add to that the great quality of Trolltech offering, and who cares about a couple extra megabytes?

        Anyway, Qt is pretty much the only reasonable choice for cross-platform C++ development, and a very strong contender even if you're g

        • by Enleth (947766) <enleth@enleth.com> on Tuesday May 06 2008, @06:51PM (#23318934) Homepage
          If your app risks being dismissed by the user for such reasons, you have some serious problems than just the toolkit you are using. Like, well, the app being nothing of particular value usefulness compared to the alternatives or something along these lines.
            • by GigaplexNZ (1233886) on Wednesday May 07 2008, @03:45AM (#23321652)
              You mean like how iTunes and Safari look completely at home on Windows? Apple fans have double standards; they expect uniformity on the Mac and allow Apple software to stick out like a sore thumb on Windows. If an OS X user rejects my applications because the toolkit only looks 95% at home compared to other applications, it is their loss, not mine.
            • by Weedlekin (836313) on Wednesday May 07 2008, @03:53AM (#23321682)
              "Many Mac users, myself included, are very finicky about apps that do not look or feel like Mac apps."

              While others are like me, and don't give two hoots if the app does something we want or need. I'm far more worried about the ability to paste information between apps, use of standard centralised resources such as the dictionary / thesaurus, support for drag-and-drop conventions, and Mac-style installation and removal mechanisms than whether it's a little ugly or uses a few non-standard keystrokes.

              "Using an app that looks significantly out of place in an otherwise consistent UI is very annoying"

              Unless of course it's from Apple, who, like MS, seem to be quite happy to break their own look-and-feel guidelines.

              "I fully understand why some developers steer clear of Mac support for that very reason, but it is a reality, and it's not going away"

              It will however become less significant as Apple's market share grows, because there are more and more new users who're running Windows apps on their Macs via dual-boot or virtualisation, and they're a lot less Mac-like than QT-based ports (even Java stuff is more Mac-like than software written specifically for Windows).
        • Re: (Score:3, Insightful)

          Blah, if people won't install your app for any of these reasons then they are important.

          No Windows user is going to not use your app because C++ is out of fashion on that platform. Only the dumbest Linux users would do something like that.

    • Re: (Score:3, Insightful)

      On Linux the libraries are now so damn big that non-KDE users wont install them.

      I take it you run no Java apps at all then? One of those suck down way more than Qt does. Plus it's modular so you can take your pick, but if you want a core + ui + network + sql + xml + svg + unit test + opengl framework yeah it adds up. I think you get a lot more than GTK does though. And seriously, even with all of them you're talking 10-15MB in a world where 4GB DDR2 costs 60-65$.

      On Windows the best development tools are moving away from C++.

      We'll see, C++ certainly isn't going away fast. The tools are good and there's plenty developers so I wouldn't worry about

    • by pherthyl (445706) on Tuesday May 06 2008, @06:35PM (#23318818)
      >> On Linux the libraries are now so damn big that non-KDE users wont install them.

      That's ridiculous. Only the hardcore GTK purists won't install qt libs. No one else will ever know or care. You can never please those fanatics. If you use GTK you will have the same problem with hardcore Qt purists. You can safely ignore those idiots.

      >> On Windows the best development tools are moving away from C++.

      As others have mentioned, that's not the case at all. Visual Studio has excellent C++ support in its latest versions, and there are lots of decent free alternatives (Eclipse CDT, dedicated stuff like QDevelop).

      >> On Mac it's just plain ugly.

      I can't say much about that since I don't use a mac, but some other people have mentioned that they didn't even notice the difference on some Qt using apps. Once again I doubt it's an issue for anyone except the hardcore purists.

      And what's the alternative? Write a custom UI for each platform? Maybe if you have resources to burn, but these days it's just a huge waste.
    • by aproposofwhat (1019098) on Wednesday May 07 2008, @02:27AM (#23321288)

      On Windows the best development tools are moving away from C++.

      I think you meant that:

      On Windows the majority of tools who think they are developers are moving away from C++.

        • by Kjella (173770) on Tuesday May 06 2008, @06:36PM (#23318824) Homepage
          It's a most troubling prospect you bring up there, if only there was a way that several applications could share the same library. Maybe we could create some sort of package system, where you download the library just once from something we could call a repository. Then we could have a package manager to sort this out, so that you could have tiny 100kb apps using a 10MB library. Oh, a man can dream...

          Seriously though, it might have been a semi-valid point on Windows but on Linux where he used it it's complete nonsense.
            • Re:Framework hell (Score:5, Informative)

              by SanityInAnarchy (655584) <ninja@slaphack.com> on Tuesday May 06 2008, @08:53PM (#23319708) Journal

              But each of those 100 ko apps depends on a different version of the 10 Mo library.
              In short, no they don't.

              Using one version of a library with an application designed for one version often results in framework hell.
              You linked to "dependency hell", which is a solved problem -- see package managers. It is not only possible, but easy, to install multiple versions of the same library. And if the library is reasonably high-quality (like Qt), you're not going to need ten versions of it. On a bad day, you might need two (3 and 4).

              I haven't been on Redhat in awhile, so maybe it's still an issue there. I remember RPM being a bitch, but I haven't used RPM since 2002. On Ubuntu, I have exactly one version of libqt-mt installed, and it weighs in at about 11 megs. And because this is Kubuntu, it's installed already.
            • Re:Framework hell (Score:5, Informative)

              by UngodAus (198713) on Tuesday May 06 2008, @09:39PM (#23319978)
              Actually, in Qt we have a mandate for backwards binary compatibility. Only if it's an absolute necessity is binary compatibility broken, and I honestly can't think of a single time in the 4.x stream of code that we have done that. So, your "framework hell" argument is moot. Only the latest version of Qt is "needed", and should support all applications compiled for previous revisions of Qt4.
  • Excellent (Score:5, Interesting)

    by Kjella (173770) on Tuesday May 06 2008, @05:50PM (#23318424) Homepage
    I really look forward to the Phonon functionality. You can now finally write cross-platform players, capturers, encoders, indexers, mixers, filters and whatnot that'll work across all backends, as Qt is writing the backends for Windows (DirectShow) and OS X (Quicktime) as well. Note: I know not all of these features aren't in 4.4 some are pushed back to 4.5. I really hope this manages to unify the Linux multimedia experience. It's these kinds of deep changes I think are necessary for Linux to succeed in the long run, having to deal with xine/gstreamer/vlc/mplayer which all seem to work on different content but none on all is something the user shouldn't have to do. Having them all in one cross-backend API is a very big step forward.
      • Re:Excellent (Score:4, Insightful)

        by Kjella (173770) on Tuesday May 06 2008, @06:49PM (#23318922) Homepage

        I disagree with the idea that throwing another player into the game is going to do anything to help the user.
        Actually, they're throwing one out - the arTs sound server. Phonon is not a multimedia framework, it has no intention of implementing anything. It makes life easier for application developers, which honestly shouldn't care more about which media backend is in use than what scheduling algorithm the kernel uses.
  • by Anonymous Coward on Tuesday May 06 2008, @05:59PM (#23318500)
    Vladimir just posted about working more on Qt for Firefox - http://blog.vlad1.com/2008/05/06/well-isnt-that-qt/ - the more devs that can help, the quicker this will happen.
  • ActiveX WebKit (Score:3, Interesting)

    by Xaroth (67516) on Tuesday May 06 2008, @06:27PM (#23318754) Homepage
    This is only tangentially related to the Qt 4.4 release, but it seems to me that, when combined with ActiveQT, this theoretically provides the first ActiveX wrapper around WebKit. This sort of thing would enable hobbyist C# or VB users to quickly get web-driven applications up and running.

    As I understand it, at current ActiveQT is only available under the paid licenses, which makes it difficult to create a F/OSS Windows application that uses such a control (which I happen to want to do).

    Are there any ActiveX wrappers to WebKit out there (whether using Qt or not) that are suitable for use in F/OSS projects, or - failing that - any other drop-in ways to get a standards compliant browser pane up and running?
    • Re: (Score:3, Informative)

      http://www.iol.ie/~locka/mozilla/mozilla.htm [www.iol.ie]

      Wine uses it. It's as standards-compliant as Gecko, which is probably enough for you (unless it's an evangelical thing)

      In any case, it's better than Internet Explorer's ActiveX (where standards are concerned)

      NOTE: That link's a bit old, but should be more than adequate.
  • by alberthier (998375) on Tuesday May 06 2008, @06:37PM (#23318832)
    The only drawbacks on Qt I see in the comments here is that the lib is too fat or that C++ is dead. But let's concentrate on What Qt provides:

    A API that covers the purpose of glib + gobject + gio + atk + pango + cairo + gtk + gstreamer + gecko + libxml2 + goocanvas + internationalization + portability accross Unices, Mac and Windows This is splitted in several modules Core, Xml, Network, Gui, Phonon, Webkit And the main point is that you have all that in the same API with the same object design. If you never coded in Qt, try it before saying it sucks, you will see how straitforward everything is.

    Signals/Slots in really a fantastic feature and massively used in Qt

    Java / .NET descided like Trolltech that C++ was too complicated. Sun created the java language, MS the C#, Trolltech just decided to limit themselves to a subset of C++ and add some extensions via macros (and a precompiler which generates the boilerplates) but globally the aproach is similar.

    I use Qt every day and I really don't think I could be as productive with WxWidgets or GTK. Maybe GTK / Vala will be the future real competitor to Qt.
    • by master_p (608214) on Wednesday May 07 2008, @03:37AM (#23321606)
      The Qt library is the C++ SDK that the C++ language is missing. I would pay to see the C++ Standards Committee adopt it as the standard C++ toolkit. Now if only C++ got real garbage collection and lambda functions (two features that are really necessary for high end development)...
      • by Ed Avis (5917) <ed@membled.com> on Wednesday May 07 2008, @04:19AM (#23321778) Homepage
        OTOH, I would pay to see Troll Tech adopt the standard C++ library in Qt, rather than reinventing their own strings, vectors, lists and so on.
        • Re: (Score:3, Interesting)

          Unfortunately a bolt-on Boehm garbage collector is not real GC. It has to guess what things are pointers and what aren't, so it can get confused by integers that happen to be a valid address. If you think that's unlikely to happen in practice, consider the scope for denial-of-service attacks by feeding in data designed to trick the GC. When dealing with security, theoretical possibilities become all too practical.

          Real lambda functions (not Boost's weird simulation) will be cool.
    • Trolltech just decided to limit themselves to a subset of C++
      Not really; Qt Jambi [troll.no] brings Qt to Java developers since 4.2 IIRC.
          • by a.ameri (665846) on Wednesday May 07 2008, @07:00AM (#23322422)
            Am I the only one who is fascinated by the irony that nowadays, the main selling point of the toolkit that was developed first and foremost as an open source equivalent to Qt, is that it can be used to develop closed source applications?

            I wonder how the open source purists who deplored Qt when it was clsoed source and issued jihad against the KDE community and the likes of SuSE and Mandrake for bringing closed source creep into the open source world, feel about the fact that their beloved toolkit is licensed under the "lesser" of the GPL lincences, while Qt is now GPL through and through.

            The irony of history...
  • by Yosho (135835) on Tuesday May 06 2008, @07:02PM (#23319004) Homepage
    I was pretty excited about the Windows Mobile support in this, until I downloaded it, read the FAQ, and discovered that you have to have the Windows Mobile SDK installed to use it. While the SDK is free to download, you must have Visual Studio (not an Express version) to install it, so developing mobile applications is still going to cost you at least a few hundred dollars.

    So, just a heads up to anybody else who's interested: Don't bother with it unless you have Visual Studio Professional 2005 or later.
    • Re: (Score:3, Insightful)

      ...right. Go look up what each of those libraries provides, and then post back when you've got a clue. Qt is much more portable, and provides a lot more for you than GTK or WxWidgets does. Qt ain't just a widget library.
    • by Rhapsody Scarlet (1139063) on Tuesday May 06 2008, @06:05PM (#23318546) Homepage

      Nobody needs Qt when there is WxWidgets and/or GTK. Qt's point is moot

      The ZSNES developers for one prefer how Qt works [zsnes.com] and R. Belmont (of MAMEdev fame) also stated that the only reason he used GTK+ on the Linux port of Audio Overload was because various portions of the code weren't compatible with the GPL. If they had been, he'd have used Qt instead. I also prefer Qt, hence why I use KDE in preference to anything else and why I view the possibility of Mozilla using Qt [vlad1.com] with some excitement.

      I'd go as far as to say that GTK+'s 'killer feature' these days is the licence. The fact that it uses the LGPL as opposed to the GPL and was open sourced well before Qt is why it's remained so popular. In most other respects, Qt is the better toolkit.

    • Re: (Score:3, Informative)

      by Anonymous Coward
      I am not sure but reading your post it seems you are under the belief Qt is licensed per application.

      The Qt licensing model is that you a license fee per developer, depending on the number of platforms you want to target.

      One of the key values Qt brings is the single codebase / multiple platform way of developing.

      If you wanted to port a rich client application to Linux and Mac OS/X you would not be able to use your MSDN subscription for much, whereas with Qt you would recompile your app. You would have to be
    • by Jeremi (14640) on Tuesday May 06 2008, @08:11PM (#23319438) Homepage
      But for the cost of one license for MSDN you can only license one application for Qt development, both per year.


      Huh? A Qt license is expensive, but once you have it you can create all the Qt apps you want. At least, that's what my Qt license says. I think you have been misinformed.


      But, per application, recurring per year, its expensive


      Again, there is no "per application" charge. The "per year" charge is if you want support -- if you don't want/need support, just buy the Qt license and don't renew it after a year. You'll still be able to use the version you bought indefinitely.


      And should we port to Linux and Mac OS/X, our licensing fees for MSDN would be £453 (approx $1116) and our Qt fees would be $126,000).


      Are you talking about porting a .net app to Mac and Linux? Most Win32 apps wouldn't be "ported" so much as "rewritten from scratch", and for a non-trivial app the rewrite would cost a lot more than $126,000 in developer time. Maybe C#/.net apps run just as well on Linux and OS/X as they do under Windows, but if so that is news to me. Portability what makes Qt worth the money... being able to support Linux, Windows, and Mac with a single codebase that you only have to write and debug once is a huge win.

    • Re: (Score:3, Insightful)

      Because MSDN only wishes they could touch Qt in ease of programming. C++ compared to Java (and I have to assume it's close cousin C#) is hands down the better choice, with Qt you get the cross platform, garbage collection (not 100% but I have less memory leaks with my Qt programs than with my Java programs) and so much more.

      Let's see do a decent GUI or even server using MSDN which will go cross platform!

      Speaking of licensing fees, just how many developers do you have? Is it safe to assume th
    • by codemachine (245871) on Tuesday May 06 2008, @08:31PM (#23319590)
      A number of possible answers, with varying degrees of importance/truth depending on your opinions:

      - Because QT is cross platform.
      - Perhaps it saves enough development effort over the MS stuff that it is worth the cost.
      - It has a GPL version on all the major desktop platforms, so fully OSS apps are possible
      - Is compiled instead of interpreted

      There are probably lots more differences between the platforms that I missed as well. Not all of them would favour QT. Depends what you're looking for I guess.

      But it isn't surprising that QT is popular with much of the Slashdot crowd, since it is GPL and supports non-Windows platforms. So I'm not sure why one would even have to ask why people here prefer QT over MSDN and Visual Studio.
    • by justaguylikeme (963377) on Tuesday May 06 2008, @11:01PM (#23320454)
      Trolltech has never licensed Qt per application. It's per developer seat per year. At our company we use Qt for most major development we do. The ease of use, flexibility, outstanding documentation, cross-platform capabilities, and excellent technical support we receive for the price makes it definitely worth the while. We couldn't develop nearly as much as quickly if we didn't have Qt. We've been using it since version 1.2, and have watched the toolkit mature over the last decade. We're a relatively small shop (5 developers) that has to turn around products quickly across a wide array of platforms. For the things Qt does, we haven't found anything that comes close to doing it better or more simply. The up-front cost is an easy sell to our management team, who are thrilled with our performance.
    • Re: (Score:3, Informative)

      Gtk+ does GUI and threading, but wxWidgets is a complete application framework with networking, filehandling and a whole lot more abstracted. Plugin libraries exist for both to extend them, and I'm sure there is at least some basic file abstraction in Glib (which is required by Gtk+).

      Licensing aside, I rate Qt and wx about the same in features. They both seem to get the native look on OS X, and wxWidgets takes on the Gtk+ theme on X (which is an engine using the KDE theme).
    • So, here is my question: in Qt 4, can we do signals and slots programmatically, or do we still have to use qmake?
      I imagine you mean "moc" ("meta-object compiler") here rather than qmake. You can call moc yourself without any problems, and you can run it from post-build actions for files in your project you need preprocessed. It's all there in UI in VS2008. And, of course, if you buy Qt4, you'll get full integration with all modern VS versions out of the box.

      IIRC, you always could do signals/slots programmatically - after all, moc is not some kind of magic, it just generates all the boilerplate C++ code. It's not exactly convenient, though (not like e.g. boost::signal), precisely because it's not intended to be used manually.

      • Re: (Score:3, Interesting)

        Yeah, sorry, I meant the MOC.

        I do not want to run the MOC myself, neither would I want to have to setup a build action for each file. I just want to press F5 and see my app compile. Anything else detracts from the development process.

        I can't buy Qt4, my boss will not buy it.

        I did signals/slots programmatically, and it's great. I studied the boilerplate code the MOC creates and simply copied it into templates. Now I don't have to use any special tools.

        Another benefit from this is that I can use any function
    • Re: (Score:3, Informative)

      I like C++ GUI Programming with Qt 4 very much. Details here http://troll.no/developer/books/2