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.
It's mature and has all the bells and whistles. Only other alternative is WxWidgets...
What else did you have in mind ?
Oh right, this is slashdot.
But it's not even like you have to read anything. It's a video demonstration.
File under 'M' for 'Manic ranting'
... hence thousands of non-programmers continue to talk about how superior it is to GTK+
Having done a small amount of Qt programming, it's also one of the most pleasant APIs I've worked with, both in its C++ form and in PyQt.
If you don't know exactly what QT is/does since the first time you compiled it in order to run kvirc back in 1998... Then I don't know what you are even doing here.
If you didn't already know what Qt was, then you're probably not going to be particularly interested that version 5.0 is out.
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.
this is awful editting
That doesn't sound right coming from a person spelling "editing" wrong.
Some apps are WYSIWYG. Some others are WYSIWTF.
That seems like totally valid criticism to me. So you're saying Qt is equal or inferior in all respects, and uses more resources? You should blog about this, because no amount of googling turns up remotely similar results. As a matter of fact, people seem to be quite happy with Qt, and "shinyness" doesn't even get mentioned in those discussions. Or is shiny just code for "not as fugly" .. ? Please elaborate.
How is this going to impact KDE? Will this be the start of KDE5?
There is no comparison between QT and GTK+. QT is by far superior in about everything. Only hipsters like you think otherwise.
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.
The standard xinput mechanisms have full tablet support now. You can even use use cheap knockoff tablets now thanks to digimend (I got one from monoprice and it's pretty great for messing around with handwriting recognition and I've discovered that image editing with a trackball + tablet is great). Unfortunately all tablets are kind of broken except in the latest release of X.org because of a bug with coordinate transformations (basically, the pointer jumps if you make pressure changes without moving because the code transforms the already transformed coordinates... it also left touchscreens pretty broken; the guy that fixed it caused something like a dozen ubuntu on nexus 7 bugs to be closed!).
HAL 7000, fewer features than the HAL 9000, but just as homicidal!
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.
You build things over it, like desktops (like KDE) or mobile (like the upcoming Sailfish) environments.
Because all other frameworks suck?
You're being a little Linux biased there -- I think the OP was referring to tablet support on windows. And I believe that it is broken in Qt 5 on windows. (I'd be happy to be wrong on this.)
Ian Ameline
You obviously never programmed with QT then. QT API is generally pleasant to work with in that it's well documented, consistent, and not unnecessarily complex with a decent amount of examples.
QT is a larger framework because it does quite a bit more then GTK+ and others. In a Linux environment, that ram usage is shared so you can end up using much less ram in the end with multiple programs running on the same large library. This unfortunately is less of an advantage in Windows (where you see much less GTK+ or QT) but QT is split into several libraries meaning that you don't have to attach the entire framework to your code.
Realistically, QT isn't that large of a library for modern applications. It's definitely not the smallest but ease of programming is something to be said.
Is GTK+ bad? Never said that, but neither is QT. Simply pick the best library that works for you. For me, QT is definitely one of my top choices (though not always) after working with several frameworks.
Even worse, I don't know what "C++" or "project mean"!
Wow, sent an e-mail as suggested when clicking on "use classic" banner, and got a fast response that addressed my msg
You mean to tell me that the old version of Qt were unfit?
Apparently it had far too little buzzword-compliance with their traditional widget-based imperative style GUI, now it's HTML/CSS/Javascript and declarative style GUI that is the "hot thing". I guess the good side is that it's like writing a web app that many developers know how to do but it has pretty much all the bad sides too, personally I find it's a giant step backwards. Or rather if I was going to do it this way I'd probably just go for HTML+JQuery and make it run in a browser against a back-end instead.
Live today, because you never know what tomorrow brings
QScintilla is available for Qt4, though it's probably a separate package.
I can't speak to everything, but I will pretty highly recommend the library. I've used it in both C++ and Python (via PyQt) and both times have been a remarkably pleasant experience. The C++ side's biggest drawback is they have a preprocessing step (the MOC compiler) that means that you won't be writing code which isn't standard C++: they've got a bunch of language extensions. I wouldn't imagine that anything significant would be missing.
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.
That's true of any product release by any company. The releaser is always going to make the claim that it's better than before. It's up to you, the consumer, to look at the product and make a decision. If you want to make an informed decision you'll probably need to look at both what its promoters and its detractors have to say about it. This article is obviously about the promotion side of the product. You may find some detractors in the comments but so far they're doing a piss poor job. You'll have to try Google.
You should probably not click on articles that are obviously (from the subject line even) intended to promote a new version. They're going to upset you because they are by nature somewhat one sided. For the rest of us, that's not a major point of contention because we know who's point of view it's from and that we'll have to do some more looking if we want to be wholly informed.
Now sit down and shut up. People will think you're more intelligent that way.
I want this account deleted.
It is not is such a unreasonable thing as to assume basic knowledge of the field. This is a site predominantly amid at compsci people and largely open source/*nix people at that. Knowing what qt is or the ability to find out on your own what qt is, is not unreasonable here. If you think they should have give you a definition of qt then why not ask for a definition for C++ as well as that would be just as nonsensical in this context.
---Saying gnome 3 is better than windows 8 not so much a compliment as it is damning with light praise.
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?
there is a large difference between unfit and not as fit as it could be.
---Saying gnome 3 is better than windows 8 not so much a compliment as it is damning with light praise.
RAM usage doesn't come from big libraries. It comes from massive data sets being used to instantiate a whole bunch of shit. Libraries, even big ones, are small.
Support my political activism on Patreon.
I will add that I love their sidebar docking, floating, tabbing, etc (see Eric IDE for a good example).
Eric makes use of QScintilla.
Wow, sent an e-mail as suggested when clicking on "use classic" banner, and got a fast response that addressed my msg
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
Agreed. I've never developed anything using Qt, but have a pretty good idea of what it is. Even if I'd never heard of it before, a couple of mouse clicks and 3 keystrokes (assuming I've got Google or Wikipedia bookmarked) would've yielded an answer in seconds. Given this, and the fact that most people on /. probably already have at least a vague notion of what Qt does, I don't think it is necessary to explain it every time it comes up.
I know that... I was essentially asking to be trolled some more :D
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.
What about PySide? Is it mature enough to use for full-blown apps? Did PyQT change the licensing to make PySide irrelevant?
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)
Yes, QTextEdit handles both HTML and plain text. If you want to export the current text as a full HTML document, you call toHTML(); and if you want plain text you call toPlainText(); Both methods produce a QString that has the text area contents.
Someone has probably already extended QTextEdit to make a drop-in widget that has better syntax highlighting. I know the same thing has been done for spell check.
"It is a denial of justice not to stretch out a helping hand to the fallen; that is the common right of humanity."
QT isn't the company...troll.
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.
Declarative style GUI has been the "hot thing" for half a decade now.
And what's wrong about it? HTML5/JS is not bad because it's declarative. It's bad because HTML was never designed to lay out UI, and JS is just a quirky, horribly designed language. But do declarative UI with an expressive data binding framework, and use C++ (rather than JS) for the model, and it's beautiful.
Speak for yourself. Some of us have multiple monitor setups, e.g. 1 in landscape, 1 in portrait. The ability to dynamically attach/detach tabs as separate windows is very handy. IDEs and web browsers make use of this feature.
I haven't tried to code something like this, but you should check out how Veusz does it, because it works perfectly.
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.
It was unfit for the future, yes.
"Science can amuse and fascinate us all, but it is engineering that changes the world. " - Asimov.
As someone who's been on Slashdot since the 90s, I think you're tilting at windmills. When was the last time you saw a really good summary on Slashdot? Shitty summaries are the norm here, and they're frequently downright misleading and contradicted by the articles linked. There is NO editorial control here, just sensationalism.