Qt 5.0 Released
sfcrazy writes "The Qt project and Digia, the company behind Qt framework, have released the most awaited C++ framework for developers, Qt 5.0. The company claims it's one of the best releases to date and has invested a significant amount of time behind this release. It's an overhaul of the Qt 4.x series and makes Qt fit for the future."
Update: 12/19 17:46 GMT by U L : Major new features include an overhauled graphics layer, full integration of Qt Quick for creating flexible interfaces using Javascript, and increased modularization including the first steps toward de-emphasizing QtWidgets by separating them into their own module.
The company claims that it's one of the best releases till date
Well, you would rather hope so.
This is like the millionth time that we've had a headline that is "Open source project whose name does not imply function releases new version"
And a summary that is "The version number, which we're happy to tell you, was highly anticipated, but forget any discussion of what the project is".
I know we like open source here, but if the project is anything other than linux, a major distro, or a major programming language, this is awful editting, that repeats over and over. Not even mentioning any new features is inexcusable.
For everyone else: Qt is a library/framework for developing GUI applications.
The Qt project and the company behind Qt says the latest version of Qt, which is an overhaul of the previous Qt version, is one of the very bestest releases of Qt that Qt has ever released. Qt!
Especially considering how irrelevant point releases are this days.
Looks to be on the way to that, instead of just keeping a good clean GUI system. So, when is full QT OS coming out?
It's mature and has all the bells and whistles. Only other alternative is WxWidgets...
What else did you have in mind ?
Last I heard they pulled Wacom tablet support. (QTabletEvent is still there, but never gets generated) Assuming this is still the case, this makes it a non-starter for a bunch of Qt Apps -- off the top of my head; Mari, Maya, and Mudbox among others.
I work at QT, and have serious doubts that we could release a programming framework like this.
Did they make any moves towards using standard C++ features rather than the MOC ugliness? What with Boost::Signals, sigcxx and C++11, I see no reason why they have to bastardise the language to provide signals.
How is this going to impact KDE? Will this be the start of KDE5?
It's the framework for KDE, which is the excellent, fast UI environment I use on my Linux rigs. Apparently a huge number of other projects either use it currently, or have used it in the past, including a number of well-known projects: Amazon Kindle, Google Earth, Adobe Photoshop, MythTV, Rosegarden, Skype, Virtualbox, VLC media player.
This really is the best cross-platform Apps framework out there. Far better than HTML5/Javascript.
So, is it fully standard C++ now or do you still have to use their hokey preprocessor?
One framework to rule them all, making programs for all platforms, including mobile ones, is a nice goal.
"It's an overhaul of the Qt 4.x series and makes Qt fit for the future."
You mean to tell me that the old version of Qt were unfit?
Because all other frameworks suck?
I've used wxWidgets/wxWindows in the past, and that has Scintilla built in. (Scintilla does syntax colouring for dozens of languages, allows bookmarks, breakpoint markers, etc, expand/collapse and is a good foundation for an IDE) I'm about to start a big project which includes a Lua editor/debugger, and now I'm wondering if I should look at Qt.
Does Qt 5 (or earlier) have a similar component to Scintilla? I presume it has all the other IDE-type stuff like docking panes, tab-based "notebooks", etc.?
Slashdot has really been behind the times lately but this realllly takes the cake. Quciktime 5 has been out since April of 2001 and they are up to 7.6.6. ;)
You can now use any C++ function as the target of a signal using the new QObject::connect() syntax. This is a huge win because with the new syntax the compiler and linker can check that the connections are valid instead missed connections just causing a run-time error.
The moc preprocessor is still required for QObject derived classes, mostly for the translation framework and also to provide support for the old signal/slot syntax which is still allowed. Qt5 doesn't require a C++11 compliant compiler, which is a good thing since there aren't yet any fully compliant compilers. I'm sure if there is a Qt6 it will require C++11 and use those features.
Some of the really cool C++11 features like move constructors aren't necessary with Qt because it's containers implement reference counted copy-on-write, so when you assign a QMap from another QMap no copy is made, and if the old QMap was an rvalue then there is never a need for the copy to be made when the new QMap is modified. One of the big improvements Qt4 made over Qt3 was to make container assignment atomic so this mechanism worked with threaded code and defensive deep copies weren't necessary anymore.
It's an add-on. My bad. By the way, I think the better port is here: http://www.griffin.net/2010/01/hacking-the-amazon-kindle-dx-part-2-qt-and-sudoku.html
QT is about the best "native SDK" I've seen out there. In the company I work at, we dev our internal tools in Qt, and at home my hobby projects are in Qt also. They run on mac, linux, and windows. Other projects that run on Qt include Maya (Autodesk), they recently swapped over to using 4.7.1. Knowing autodesk, in only a couple decades they'll switch to Qt5!
I used Qt Quick briefly. It seems like you get a lot of deep powerful customization, but that comes at a cost. It eventually pissed me off so I went back to QWidget, and my productivity soared.
I would not have completed my project in a reasonable time using Qt Quick. It is not "quick". Sometimes, you just want to drop tables, check boxes, buttons, etc. on to your main window, tie the click event to a slot, and call it done. You are fine with whatever default styling and rendering that Qt and the OS decide is appropriate for the widget's click/hover/etc event.
It seems with Qt Quick, you have to specify all that nonsense. Plus, the Qt Quick editor tool felt complex and confusing. I avoided it and did everything by hand. Qt Designer for QWidgets is a drag-n-drop breeze. I even got my manager on board after he saw me using it. He is an EE, and he really likes it. He is used to spending $500 on Visual Studio Pro to what Qt Designer does better for free.
Maybe I just needed to study Qt Quick more to get past the learning curve, but I knew how to do it the widget way, and I wanted the project done.
Has anybody had success migrating their project from QWidgets to Qt Quick? Unless I see a strong compelling reason, I am sticking with QWidgets. It works really well for me.
Hey, several of my favoruite Windows apps are in Qt (e.g. from my WinXP days: "Launchy", and current versions of TweetDeck and Calibre).
Qt-on-Windows runtime installs much like the Visual C++ runtime, and that, for me, is preferable over any app done in Java/Perl/Python, as I don't have to clutter up my system with RTEs (that are all too often supporting a single app)
...and not one annoying "time to update your runtime... AGAIN" ... ever!
Height: 38U, Weight: 0 Newtons, Eyes: #0000FF, OS: Gray Matter 1.0 (Alpha)
How is Qt still relevant?
Let's see...
It's the only multi-platform development kit that is really as feature complete as most platforms.
It runs on more devices than you'd ever imagine - from small embedded devices to your kitchen appliances to mobile devices to desktops and servers.
It's what KDE is built on.
It's what MeeGo/Mer/Tizen/Sailfish are built on.
It's what Blackberry 10 (BB10) is built on.
AutoDesk is built on it.
CiscoVPN is built on it (well, a really old version at least).
There's plenty more out there; but I'm going to stop there.
Truth is like the sun. You can shut it out for a time, but it ain't goin' away. - Elvis Presley (source: imdb.com)
One framework to rule them all
But for Android and iOS support, we'll have to wait until late 2013.
If Pandora's box is destined to be opened, *I* want to be the one to open it.
Lighthouse?
My -1 Troll is actually a +1 funny. And my -1 flame is actually a +1 insightfull.
I wonder if Qt 5 will adhere better to OS X (Macintosh, Apple) user interface guidelines. Previous versions of Qt have stomped on OS X conventions at seemingly _every_ possible opportunity.When I see an app that I'm considering using is made with Qt, I shudder. I'm never sure that it is Qt to blame or the developer, but I'll bet that it is mostly Qt. In my opinion, it is a horrible cross platform solution, but somewhat less horrible than some of the others. A Windows-using friend of mine says that it also sucks on Windows and that he thinks it's mainly a Linux thing.
I must admit, as someone who has coded in Qt, that is has some of the best documentation I've ever seen (from a developer's perspective). Just look at the docs on Containers . There's diagrams, examples, tables, and pictures.
Yes, because all prior releases define future releases. And since every major software product has at least one version that sucked in some way, every release from that point on will suck forever.
IE 10 sucks because there was a 6. Firefox 17 sucks because there was a 4. Windows 7 sucks because there was ME, Vista, and 8 (Shit, why not go backwards too since we're not making sense anyway). Gnome will never recover from 3 and Unity... well I guess it sucks if you fuck up on 1.0.
god damned trolls.
For support, kinda. But you can already deploy for android with necessitas.
"Science can amuse and fascinate us all, but it is engineering that changes the world. " - Asimov.