Qt 5 Beta is here

Published Thursday August 30th, 2012 | by

The Qt 5 Beta is now available as the first major release under the new Qt Project umbrella. A big thank you goes out to all who contributed to this milestone. With this Qt 5 beta release, I would also like to invite everybody interested to go, try, and experience this next major version of Qt. Your feedback now will be very important in making the final release of Qt 5.0 as good as possible.

It’s now 15 months since we announced the start of Qt 5 development, and I am really happy to see what has been achieved during this time. All of the major architectural changes that we planned for have been implemented. At the same time, the community around Qt and qt-project.org has seen a nice and healthy growth.

Qt 5 will make it easier and faster to create:

  • Smooth, accelerated graphics performance with limited resources. Qt 5 makes better use of the GPU to deliver better performance on inexpensive hardware. For example, using Qt 5 you can achieve 60 fps performance on a $35 single-board computer like Raspberry Pi. – See the Qt on Pi project for more info.
  • Advanced UIs and applications written in QML and JavaScript. See the Qt Media Hub as an example
  • Powerful apps connected to the web

High-performance Apps and UIs

Qt 5 addresses two core challenges developers face when creating high-performance apps and UIs:

  1. Better tools to design the UIs and
  2. Better rendering performance to execute your vision.

The new extensions and APIs to the QML language make it easier to create rich and fluid apps and UIs for touch screen devices in addition to supporting keyboard input methods. Qt 5′s updated WebKit and Qt Quick modules support out-of-the-box touch interaction for smooth user experiences.

The new graphics stack sports an all-new rendering pipeline using an OpenGL based scene graph that is fully optimized for Qt Quick. This makes it trivial to integrate OpenGL-based content, such as shader effects or particles. Text rendering is also fully hardware accelerated, giving you faster graphics and lower power consumption. As a result, Qt 5 delivers the same 60 fps smoothness seen on high-end smartphones even when executed on inexpensive hardware like the Raspberry Pi.

Providing Source Compatibility and Continuity – Porting and QWidgets

A lot of effort has gone into making the transition of your code base and skill set from Qt 4 to Qt 5 as easy as possible and to keep as much source compatibility with Qt 4.x as we can. As an example we currently have Qt Creator compiling and running against Qt 4.x and Qt 5 using the same code base.

You can find links to detailed porting instructions on the Qt 5 beta page or look at some examples of KDAB’s porting efforts.

Updating your code base is primarily a process of updating your projects’ .pro files, to change header file includes and add used modules. Qt 5 provides a script that facilitates this task. In addition, code that integrates with native windowing system functionality of the underlying platform will need some adjustments.

While new UI designs benefit from the updated QML for mobile and embedded applications, it is also important to notice that existing widget-based designs remain viable. Widget-related APIs continue; QWidget and all derived classes are a core part of Qt 5 on the Desktop – and will remain so.

New APIs and modules

In addition to the changes to the internal architecture, a lot of new APIs have also found their way into Qt 5. Many new classes appeared in QtCore, providing support for JSON, mimetype recognition, standard paths and many other things.

The OpenGL support is now an integral part of QtGui and has received some nice improvements. QWindow provides a better abstraction for top-level windows then the old QWidget.

A couple of new modules have been added to the scope of Qt 5. In particular, the differentiation between Qt and Qt Mobility that existed in Qt 4.x has been removed. Instead we now have a more modular structure and each module (a shared library or QML import) is now classified as either being part of the Qt Essentials or an add-on.

This new structure will make it easier in the future to integrate modules providing new functionality into the Qt Product offering, and allow for example KDE to provide their frameworks as add-ons to Qt.

Greater opportunity

In addition to delivering the best development environment possible, it is important that Qt increases your opportunity to get your projects in front of a bigger audience.

With Qt 5, support for multiple operating systems continues. The QPA abstraction layer makes the task of porting to new platforms easier and more seamless then ever before. We are already seeing a lot of work going into Qt 5 to implement a full port to QNX and Blackberry 10. Digia has already announced their plans to port Qt 5 to Android and iOS.

In addition, a lot of effort and contributions have gone into especially improving the use case for embedded developments on Linux. This helped the strong growth/up-take we witnessed within Qt for Automotive, IPTV/ STB and other IP comms manufacturers for current and next gen infotainment systems.
Discussions regarding what additional improvements Qt 5.1 will bring to the desktop use case and how quickly i.e. we can integrate Qt desktop components are ongoing and were also part of the sessions that ran during 3 days when close to 200 contributors attended the Qt Contributor Summit in Berlin during the end of June.

Known issues

While we are happy with the current state of the beta in most places, there are a few known issues that you might want to check out from our Known-Issues page. Most notably, you will need decent OpenGL drivers on Windows for Qt Quick to work, and there are issues remaining with Qt Multimedia on platforms other than Linux.

We expect these issues to get resolved for the Qt 5.0 final, where we will by default use ANGLE to layer OpenGL on top of DirectX (the option to use the native OpenGL support on Windows remains of course) and work on the remaining Multimedia issues.

Summary

One thing that is becoming very visible now is how much the start of the Qt Project and move to Open Governance helped in improving Qt. Over the last year, we have managed to create a very active and passionate community of developers around Qt, and many of the improvements we are now seeing in Qt 5 would not have been possible without all this efforts.

As an example, I’d like to mention all the improvements that flowed from the KDE libraries back into Qt 5. These will actually make it possible to have a more modular approach for KDE applications and fully remove the differentiation between a KDE and a Qt app

I am very proud of what has been achieved with Qt 5. A big thank you goes to everybody who has in some way contributed to bringing Qt 5 to where it is now. Let’s also take a bit of time to celebrate all the hard work that has gone into this release, as the first major beta released under the new Qt Project umbrella.

Lars Knoll

Did you like this? Share it:

Posted in migrate, Qt

72 comments to Qt 5 Beta is here

Kenneth Christiansen says:

Congratulation!

Congratulation for alll of Us :D

Peter Bocan says:

Great Work, guys!

Paul Gideon Dann says:

I’m really excited about the idea of removing the distinction between a KDE app and a Qt-only app. That will be *awesome*.

smoggy says:

Great day ! Congratulations !

Sylv says:

Congratulations!
Is there an estimated date for the release of Qt 5.0.0 ?

Eero Penttinen says:

Awesome, great work Qt community and good luck making with Qt everywhere strategy a reality! Qt is in better shape than ever!

Tsiolkovsky says:

Awesome! Can’t wait what cool new things Qt 5 will enable for KDE desktop and software.

govi1 says:

Great news!

I have one question about QML:

From QT5 , it seems to me that QML and javascript will be predominant.
Is that means ,From QT5, QT will not encourage developers to develop UI using QWidget(say, c++) directly? because many features only existed in QML , for example, particle element.

what is strategy of QT in future ?

Chaser says:

Excellent! How long I’ve been waiting for…

CreMindES says:

Great news and congrats to the new version and to all your work guys :)

Navid says:

hello.
great news and Congratulation
but i have question exactly same as @govi1

(first i should excuse for my bad english language )

i am C++/Qt develop . after Nokia bad strategy , i am worry about Qt future .
i think about porting my all code to Java and its new cool feature (JavaFX) (oracle have good backing for java )( look at oracle’s smart guys , they decide very bravely , they decide for discontinuing JavaFX Script Language and they get back all stuff to pure Java language , they dont want developer become angry and forcing them to learning new language , that is becease why Oracle is one of biggest software company in World , they are really smart )(Java and JavaFX-Script language position is exactly same as QML and C++ )

but i think i should just stay Patient for now . but i have roadmap for myself and i think many C++ develop agree with me !!
if Qt dosnt give full C++ api support , then i (as small member of Qt lover) leave it !!

when i become a Qt developer , i was C++ developer , not a QML or JavaScript or graphic designer (they are really important , but i just say more important thing is C++, after C++ we can think about them)and i will stay C++ , because it can solve my problem not FLASH or HTML5 or QML

Laszlo Papp says:

Very, very, and very gratifying news! :-)

Navid says:

in my Previous comment :
develop = developer ;
dosnt = doesn’t ;
lover = lovers ;

thank Qt community and with best regards

cymlife says:

good!

very good!

jys0224 says:

Excellent!!! Thanks for all your effort,
really great news,!

Tomaz Canabrava says:

@Navid, you can use only c++ to work on Qt, even with QtQuick. QML is optional, you are not forced to use.

Benjamin Arnaud says:

Congratulations trolls & others <3.

B.A.

ben says:

@govi1
“because many features only existed in QML , for example, particle element.”

Native support for particle effects would not make much sense in the confines of the QWidget framework. Each QWidget can only draw within its own borders, so things like particle effects (any many other effects, for that matter) would require ugly hacks like temporary overlay-widgets with invisible background etc.

This is one of the problem that the QtQuick framework solves: Since here the drawing and compositing is handled centrally by the QtQuick engine, all kinds of effects are easily possible.

So do not think of QtQuick as just another arbitrary way of doing what QWidget does, and do not think of the new features which only QtQuick but not QWidget got as arbitrary “preferential treatment”.
Rather, note that those features are simply something which some customers demand nowadays. And QWidget was simply not compatible with such features, so a new solution was found to provide them: Qt Quick.

This does not mean that QWidget has to take a back seat now – it is still a formidable framework for products which do NOT need such eye-candy, and can therefore live with the hierarchical imperative painting paradigm.

diro says:

Great!!

Yuchen Deng says:

Congrats!

ramin says:

congratulation

whatcall says:

Great work! Glad to see it runs well on Raspberry-Pi!

Benjamin Arnaud says:

Is there a Mingw32 package for Windows ?

Or do I need to compile Qt myself in that scenario ?

Thanks.

B.A.

caocao says:

Great job!guys~

Manoj Verma says:

Great News

Mika Hanhijärvi says:

Ok, fine. But. don’t forget current stable Qt.

Would you please release a new version of Qt SDK. Remote Compiler authentication is broken in the current version of Qt SDK. It has been broken months now, since Nokia changed to single login system. Remote Compiler authentication does not work anymore. Because of that it’s now impossible to build Qt apps for the Symbian usin Qt SDK on Linux.

AFAIK Qt Creator 2.5 has a fix for that so please release the new Qt SDK with that fix

govi1 says:

@ben, Thank you very much for your detail explanation.

BTW:
I hope QT will write an official book for QML , its name maybe ‘Thinking in QML’ :) .
There ‘re plenty of QML documents all around, but it always lack something or in a mess.
You see, peoples might want to have deep understanding about QML, not only the green hand who study QT for the first time just attracted by the amazing features of QML, but also the c++ Qt developers used QT for years who also want to gain benefit from the QML.

Hope QML will make all developers happy.

fritz says:

Gratulations, I’m very excited about the possibilities.
And +1 for a book (commercial or free doesn’t matter, but it should appear soon)…

stereoMatching says:

Great news

>>but also the c++ Qt developers used QT for years who also want to gain benefit from the QML.
I agree with you, better talk about how to integrate QML with C++ rather than “pure js and QML”,
and how to expand QML by C++.

stereoMatching says:

just download it, there are no binary of the mingw version for windows yet?

aaa says:

I hope QtWebKit is fixed because since 4.8 it is pixelated as hell every time something moves. WebGL would also be nice…

fabo says:

Congrats!

icaro says:

You could fix this:

Note: On Linux and Mac OS X, the drag and drop operation can take some time, but this function does not block the event loop. Other events are still delivered to the application while the operation is performed. On Windows, the Qt event loop is blocked while during the operation.

in Windows

Anssi Eteläniemi says:

Congrats, it’s great to see proper hw acceleration and modular structure, it’s good base to make Qt more epic than ever.

Majunyan says:

Great work!Thank you very much!

Antonio Carlos says:

Honestly I don’t get why the focus is so high on QML, high performance on graphics, etc.

1st) I’ve been developing business applications and productivity tools with Qt for a long time and QML is just useless for those matters. I’m not interested in transitions and bla bla bla. I’m a producer of low latency software, integrated with huge databases. I need desktop components, native code, etc.

And from the community I know, everyone agrees with me (since they work on similar projects). You can make Photoshop with Qt if you need/wish, but again, you won’t do it with QML.

2nd) If one wants high performance graphics/etc he will probably use a game engine, since they are crafted for this purpose and support a thousand more things related to this subject (entertainment/interaction/etc).

Vincent Wang says:

This is really a great news! Thanks for the great work!

Maurice says:

@Mika Hanhijärvi
The remote compiler is a contribution from what was Forum Nokia (now: Nokia Developer). Qt Creator has nothing to do with the login procedure etc. It is a plugin on top of Qt Creator.

Hence I very much doubt that updating Qt Creator will help you with that problem, unless a new version of the plugin gets delivered.

Jussi says:

@Antonio Carlos
No, everyone does not agree with you. QML has good uses, I build visual applications (touchscreens, kinect, etc.) and QML looks like a godsend to me. It’s perfect for these tasks. Just because you happen to work mainly with databases doesn’t mean that everyone does. Game engines are not really suited for these kind of tasks.

Responsiveness/smoothness is a big thing and I’m glad to see that Qt has paid much attention to it.

Max says:

@Antonio Carlos
As Jussi said: “No, everyone does not agree with you.”

“I’ve been developing business applications and productivity tools with Qt for a long time.”
- Like me. For touchscreen-based embedded devices. Before QML i used the QGraphicsFramework because QWidgets uses to much resources. This was pretty ugly to use but efficent. QML combines that in a good way. Fast developing time for the front-end with a respective use of resources. ( For example on an omap l138 with 64 RAM and 16 MB Flash, so pretty small) The backend is normal c++ with QMetatype Interfaces etc.

Arend jr. says:

Congrats guys! Looks like Qt5 is again upping the ante :)

However, I have one question I hope someone can answer for me… What’s the deal with the QtScript module? There’s a new QJSEngine class being introduced which is supposed to be a wrapper around V8. It’s API however seems to be a stripped-down version of QScriptEngine. Personally, I would really love to be able to use the V8 engine with the rich API of QScriptEngine, but I’m fearing QScriptEngine still uses an older engine under the hood. Am I correct in that? Anybody knows what the plans are with this?

Thanks!
Arend jr.

Alex says:

Configurations! XD

slam3085 says:

Sadly still nothing about Symbian support. Good job anyway!

Pekka Kosonen says:

@Mika Hanhijärvi :
unfortunately remote compiler will be fully ramped down soon so a newer version of creator wouldn’t help.

Have you tried http://projects.developer.nokia.com/symbian_linux_qtsdk?

Cheers,
Pekka

Daniel Molkentin says:

@slam3085 Symbian support has been entirely removed from Qt 5. If someone wants to invest time into it, this would require a platform (lighthouse) plugin (it was scattered throughout the entire code base before). The same goes for Creator support: If someone wants to bring back Symbian support, it would have to be done cleanly.

tiara says:

Configurations!
Do Qt5 plan on releasing binary version of mingw?

kyleven says:

What a big news

libgcc says:

congratulation~

Clemens says:

Windows build fails unless iconv is disabled with -no-iconv.
This is a pretty standard Windows 7 64bit desktop, downloaded the beta1 but build fails. Anyone having the same issues?

What are the consequences of disabling iconv in Qt 5.0, will it matter in a Unicode-only environment? (ICU is activated)

Clemens says:

Oh, I forgot to mention: I build with gcc 4.7.0

Mohamed Aissiou says:

Great news!!

code_node says:

Wow, great!

Regarding the C++/Qt/QML Discussion:

I’ve made some experience last year with Qt 4.7 and QML, I think not a lot has changed since then in the way that it interacts with C++.
Real Applications, especially if you already have an performance part in your app, will always need a C++ backend. With QML you can do now pretty good and slick surfaces, which comes handy for new platforms. But IMHO is QML a very good and handy tool to do UI stuff in, still there is often the need to write the Models and other Code in C++, so that you don’t really have to worry about an QML only Qt.
After all QML is implemented in Qt and C++ ;)

Pierre-Luc Samuel says:

I am trying out the beta of Qt5 and found out that QInputContext has been removed completely.

The changelog states:

[quote]QInputContext removed as well as related getters and setters on QWidget and QApplication.
Input contexts are now platform specific. [/quote]

However I don’t quite understand what this last sentence means; am I supposed to implement a new platform adapter in wayland? How would I do that?

Morgan McKenzie says:

Is there any reason that only the release versions of plugins are supplied? I’d like to use this for developing but I can’t debug – when I do it gives the error “plugin cannot be loaded for module “QtQuick”: The plugin ‘C:/Qt/qt5beta/Desktop/Qt/5.0.0-beta1/msvc2010/imports/QtQuick.2/qtquick2plugin.dll’ uses incompatible Qt library. (Cannot mix debug and release libraries.)”.

This is a bit annoying because it means I can’t debug the c++ part of my application… I guess I’ll stick with building from git for now…

Porfirio says:

+1 for the mingw build!

Really need it!

jiaer says:

I think that the compiler version of Qt should be MingW as primary. now all the works I run in Qt Creator,Why not?

William says:

No qtdemo in qt-windows-opensource-5.0.0-beta1-x86-offline.exe ???

asstronaut_30 says:

I’m not a developer or someone with c++ knowledge, the only thing i know is that Qt is simply the best. As a Nokia Power User everyday, Qt will help rebuild Nokia. And did i see a 360 degree rotation on one part of the video in Martinee? it’s really nice. one thing i have been waiting from Nokia.

stereoMatching says:

>I think that the compiler version of Qt should be MingW as primary. now all the works I run in Qt Creator,Why not?
+1
Since Qt is a cross-platform lib, I also believe minGW should be the primary compiler on windows

Abraham Yusuf says:

I develop desktop applications in Python using PySide. Qt is the best GUI toolkit I have ever used and I feel I owe you guys a load of thanks for making it happen. Thanks!

Woot, Woot. Happy days! Now ports will start becoming easier.

BeGo says:

Great News! Thanks to All!

Josef says:

The Retina Macbook Pro and also the upcoming 13″ Samsung laptop are sporting pretty neat displays, but scaling of low-DPI GUIs looks pretty shitty, both on Windows 8 and OS X Mountain Lion. When will high-DPI GUIs be supported by QT? In QT 5?

Awesome, great news, we’ve been eagerly waiting for this.

Zengbo says:

hello everyone,

I have a issue when running any program based on qt5-beta on trident pnx8473 platform (which use a powervr 3D GPU):

EGL Error : Could not create the egl surface: error = 0×3000

Aborted

It works well on qt4.8.2.

Any suggestions are appreciated.

michel says:

great news!
v5 seems so promising and well structured.

what could I dream ?
- for desktop app mdi documents dockable/tabable “à la” matlab or visual
- plotting data with user friendly dev tool/doc
- and drawing graph based on graphviz

NIU ZHENXING says:

HAVE A USE ,WAHAHA!

broadpeak says:

What is the exact prerequisites for Linux?
What packages have I to install before install the Qt5?
Is there a article about this?

YodaNote says:

Many Thanks.
wating Qt5 final release

Commenting closed.