Stories
Slash Boxes
Comments

News for nerds, stuff that matters

In-Depth With Qt 4.4

Posted by kdawson on Tuesday May 06, @06:26PM
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.'"

Related Stories

Firehose:In-depth with Qt 4.4 by Anonymous Coward
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 | Login | Reply
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.
  • Excellent (Score:5, Interesting)

    by Kjella (173770) on Tuesday May 06, @06: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, @07: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, @06: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.
  • by alberthier (998375) on Tuesday May 06, @07: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.
  • 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.
    • 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, @07: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
    • by pherthyl (445706) on Tuesday May 06, @07: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, @03: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, @07: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, @09: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, @10:39PM (#23319978) Homepage
              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.
        • by Enleth (947766) <enleth@enleth.com> on Tuesday May 06, @07: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, @04: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, @04: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).
    • by Rhapsody Scarlet (1139063) on Tuesday May 06, @07: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.

    • by Jeremi (14640) on Tuesday May 06, @09: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.

    • by codemachine (245871) on Tuesday May 06, @09: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 Wednesday May 07, @12:01AM (#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.
    • by shutdown -p now (807394) <int19h@gmail.com> on Wednesday May 07, @05:18AM (#23321774)

      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.