Lars Knoll

Qt 5.4 released

Published Wednesday December 10th, 2014 | by

I am happy to announce that Qt 5.4 has been released today and is available for download from Together with Qt 5.4, we have also released Qt Creator 3.3 and an update to Qt for device creation on embedded Linux and embedded Android.

But let’s start with Qt 5.4. One of the main focus areas of this Qt release has been around Web technologies and we have a lot of cool new things to offer there.

Renewed Web Story

HTML5 and Web technologies have become more and more important over the last years, and we have spent the last year developing a completely renewed Web offering for Qt. The Qt WebEngine module is the result of a long-term R&D project where we adopted the Chromium Web engine for use within Qt. With Qt 5.4, it is fully supported on the most used desktop and embedded platforms. Qt WebEngine provides you with an easy-to-use API to embed Web content in both Qt Widgets and Qt Quick based applications.

The new Qt WebChannel module provides a simple-to-use bridge between QML/C++ and HTML/Javascript. This enables the creation of hybrid applications that use both Qt and Web technologies. Communication between both sides happens by exposing QObjects in the Web context. The module works not only with Qt WebEngine, but also with any other browser engine that has support for Web sockets.

As a third component, Qt 5.4 introduces a Technology Preview of a new module called Qt WebView. The Qt WebView module offers a more limited API to embed the web browser that is native to the underlying operating system for use cases where the full Qt WebEngine isn’t needed, or where it can’t be used because of restrictions coming from the underlying OS. In Qt 5.4, the Qt WebView module supports iOS and Android.

Together with the Qt WebSockets module introduced in Qt 5.3, Qt now has great support for many of the latest Web technologies and makes interacting with Web content very easy. Qt WebEngine and Qt WebView make it very easy to embed HTML5, Qt WebChannel creates the communication channel between Qt and HTML5 that is required for hybrid applications, and Qt WebSockets allows for an easy communication between Qt and many Web services.

Qt 5.4 also still contains the older Qt WebKit module. Qt WebKit is still supported, but as of Qt 5.4 we consider it done, so no new functionality will be added to it. We are also planning to deprecate Qt WebKit in future releases, as the new Qt WebEngine provides what is needed. In most use cases, migrating from Qt WebKit to Qt WebEngine is rather straightforward. If you are starting a new project that requires web capabilities, we advise that you already start using Qt WebEngine.

Qt for WinRT | Completing our Cross-Platform Offering

The second big new feature of Qt 5.4 is the completion of our cross-platform story with the full support for Qt on Windows Runtime. Qt for Windows Runtime was already added as a supported Beta to Qt 5.3, and has now reached the state where it is a fully supported part of Qt. With Qt for Windows Runtime, you can create applications for the Windows Store, targeting both Windows Phone 8.1 and above as well as Windows 8.1 and newer.

Read more …


Posted in KDE, News, Qt

The Qt Company Introduces a Unified Website and 20€/$25 Monthly Indie Mobile Package

Published Tuesday September 16th, 2014 | by

We have a lot of news to share with you today.

In June 2014, we announced via a stock exchange release that a new company entity for Qt under the parent company Digia Plc. would be formed. Today, I am very happy to be able to announce the new name as “The Qt Company”. Sweet and simple.

With The Qt Company as a separate entity, we will be able to put more focus on our Qt business operations to better position our beloved Qt technology in the software industry. We will now begin to use “The Qt Company” as our umbrella to market and promote Qt. The Qt Company has been registered in all countries where we do business and have offices.

One Unified Site |

In addition, we are today also launching the first phase of our unified Qt web site that I talked about in my blog post a month ago. We are launching this new website under the new domain This new website will serve as the main digital communication channel for everything relating to the Qt product. The plan is to combine the and web pages and online communities into one happy Qt world. In this first phase, we have started to redirect traffic from to You will also notice that under we have unified our package download options where our open source and commercial versions can be accessed from one location. In the next phase, we are planning to begin to move over content from to link directly from the new site under the “Developer” section. More information on that transition will come soon.

Another thing to take note of is our fresh new design and layout, plus a slightly updated Qt logo, which I hope you will like as much as we all do. We put a significant amount of effort to make sure that we highlight all the great things about our technology. Our goal with the new web site was to convey a simple, yet powerful message to our varying target audiences as to why everyone should develop with Qt. I hope we succeeded.

A great new offering for Indie Mobile Developers

Many of you have been asking for it, and we have listened. On top of the new web site and company name, today, we are also releasing a brand new Indie Mobile package targeting Android, iOS and WinRT development. You get the Qt libraries, Qt Creator, a commercial license and full development and deployment rights to the Android stores, App Store and Windows Marketplace (Note: the package doesn’t include support, commercial add-on features or Qt Cloud Services). The new package is available for the price of 20€/$25 per month on I hope this package will fill the needs of many of the independent developers in the community.

Qt 5.3.2 and Qt Creator 3.2.1

Finally, I would also like to mention that earlier today we did a Qt 5.3.2 and Qt Creator 3.2.1 release, rounding up the news we are having for today. Make sure to read those blog posts as well.

We hope that you have enjoyed our day of Qt announcements. Have a look at our new website and please let us know what you think. If you’re using Qt 5.3, make sure you get the update to 5.3.2. If you are an indie mobile app developer, you just have to grab our new Indie Mobile package. Download it now. We look forward to your comments.


Posted in Uncategorized

Adding LGPL v3 to Qt

Published Wednesday August 20th, 2014 | by

20 years ago, Trolltech, the company that created Qt, was founded. One of its founding principles was to release Qt as free software to the open source community. In the early versions, this was limited to Unix/Linux and the X11 windowing system. Over the years, more and more platforms were included into the open source version of Qt.

At the same time, the licenses under which Qt was available evolved. The Qt 1.x source code was still released under a rather restrictive license. With Qt 2, we moved over to the QPL. Some years later, with Qt 4.0, Qt started to embrace the GPL v2, to remove some license conflicts between GPL-based applications and the QPL.

Trolltech was involved in talks with the Free Software Foundation (FSF) when the GPL v3 was created, and we added this license as an optional license for Qt after it was published by the FSF. Finally, in 2009 Nokia added LGPL v2.1 as a licensing option to Qt.

The spirit of all GNU licenses is about a strong copyleft, giving users rather strong access and rights to the source code of application and libraries. It was always meant to protect the users’ freedom to modify the application and underlying libraries and run the modified application.

Read more …


Posted in Community, KDE, News, Qt

Defragmenting Qt and Uniting Our Ecosystem

Published Wednesday August 6th, 2014 | by

Over the last years, many changes have been happening in the Qt ecosystem. One of the biggest was the creation of Qt Project where Qt is now being developed as an open source project. The Qt Project was created to provide a space open for all to further develop and foster innovation for the Qt technology.

Qt has always been a commercial product. During the Trolltech days licensing income funded development of the product. While Nokia’s motivations were different, at Digia, our goal is to again make sure that Qt thrives for all industries, all companies, all users no matter what platform. That said, we need to make sure the business of selling Qt as a product is successful in order to fund its future development for the good of everyone in our ecosystem. The importance of Digia’s commercial business for securing the future of Qt cannot be underestimated as it drives Qt’s foundation and everyday operations. A look into the commit statistics shows that around 75% of all code submissions to come from Digia employees. In addition, Digia manages the release process and the CI and testing infrastructure, thus covering more than 85% of the costs of developing Qt.
Read more …


Posted in Community, News, Qt

Qt 5.3 Released

Published Tuesday May 20th, 2014 | by

I’m happy to announce that Qt 5.3 has been released. The main focus for this release was performance, stability and usability. Nevertheless, Qt 5.3 has also gotten a fair amount of new features that help make developers’ lives easier.

Qt 5.2 has been a tremendous success, having been downloaded over 1 million times. With Qt 5.2, we delivered on our promise that Qt is a true cross-platform framework by adding Android and iOS support. Qt 5.3 is building on that foundation, and adding to it.
Read more …


Posted in Qt, QtCreator, Releases, RTOS, WinRT

Qt 5.3 Alpha Available

Published Thursday February 27th, 2014 | by

I’m happy to announce that Qt 5.3 Alpha is available for download. Qt 5.3 is coming out a bit earlier than our regular 6-month release cycle would’ve forecasted, as we have decided to pull forward our release cycle meaning, starting from Qt 5.3, future Qt releases are planned to happen every Spring and Autumn.

The focus for Qt 5.3 is mainly about improving the stability, performance and first-time user experience of the product. A lot of the work over the past months has been focusing on improving the quality of Qt, especially on the mobile platforms and Mac OS X. Having said that, Qt 5.3 will also offer a good amount of new and exciting features, and a new platform: WinRT/Windows Phone!

New features

One of the main new features in Qt 5.3 is an improved integration between Qt Widgets and Qt Quick. The new QQuickWidget class allows  seamless integration of Qt Quick-based user interfaces with a Qt Widget-based application. This should significantly simplify using both technologies together in one application and provides an easy way to migrate Qt Quick into existing Qt Widgets applications.

Qt Network gained support for the SPDY protocol, speeding up of web content download in Qt WebKit and through QNetworkAccessManager. A new Qt WebSockets module got added featuring full support for web socket (RFC 6455).
Read more …


Posted in Qt, Releases

Qt 5.2 Released | The Best Qt Yet

Published Thursday December 12th, 2013 | by

We’re proud to announce that Qt 5.2 is now available. With the release of Qt 5.1 in July, we showcased the Qt for Android and iOS ports and laid down the beginning of some heavy improvements we have now done on Qt’s graphics capabilities. In the last 6 months, we’ve worked very hard to finalize this release and especially these ports.

Qt on Mobile Is Here with Great Opportunities

I am proud to say that Qt 5.2 fully brings Qt into the mobile space as a true player in the app development market supporting Android, iOS, BlackBerry, Sailfish/Jolla and Ubuntu Mobile. With this, Qt is the native cross-platform development framework with the broadest support of operating systems in the mobile space, complementing our even wider support of operating systems for desktop and embedded development. Qt 5.2 makes it very easy to take your existing desktop or embedded applications and bring it to mobile phones or tablets.

To show our commitment to being fully cross-platform also on mobile, we have an additional small christmas present for you. I am excited to announce that we now also have a Technology Preview of Qt for WinRT available. The preview is based on our development branch, and thus contains already a few of the new features to be found in Qt 5.3.

Qt on Android and iOS

Most of the Qt APIs are supported with Qt 5.2 both on Android and iOS. Since these are new platforms there are, however, some exceptions. Qt WebKit is not yet supported on Android, and can’t be brought to iOS due to App Store policies. But we are working on bringing an easy way to embed web content via Qt APIs to these mobile platforms in the future. In the meantime, we recommend the use of native web elements. Qt Bluetooth and Qt NFC are also not yet supported and will get implemented in a subsequent release.

All of our other APIs (including Qt Quick, Qt Sensors and Qt Multimedia) are fully supported on these platforms, allowing the development of a very wide class of applications with Qt APIs only. If something is not yet supported with the Qt APIs you can also always fall back to using some of the platform’s native APIs, where needed. For Android, we provide a convenience API for using the Java Native Interface (JNI) through the new Android Extras module. For more details, you can read the blog post about Implementing In-app purchasing on Android.

Developing Qt applications on mobile can be done fully within the Qt Creator IDE for Android, BlackBerry and Sailfish. On iOS, the Qt Creator support is still experimental.

With Qt 5.2, we are also introducing our Qt Mobile edition , which we announced in October at Qt Developer Days Berlin. Qt Mobile edition is a specially tailored package for mobile app developers that will help you target the fragmented mobile markets with one technology.

Besides new mobile platforms we’ve also continued working hard on the existing platforms. More than 1500 bugs have been fixed since the release of Qt 5.1.1. The desktop platforms have received a lot of focus with multiple improvements all around the libraries and by bringing in platform-specific support through new modules.

Great Improvements for the Desktop

Qt on desktop operating systems is the heart of Qt and has served as a stepping stone for the immense breadth of our operating system support throughout the years. That said a lot of improvements have happened with Qt 5.2 that are mainly targeting the desktop operating systems.

  • We’ve further improved the Qt Quick Controls for the desktop and made it easier to integrate Qt Quick into traditional QWidget-based applications
  • A lot of enhancements and bug fixes went into the Qt Widgets module
  • We added a new QKeySequenceEdit QWidget class making it easier to deal with user configurable key bindings
  • Accessibility is now fully supported on all desktop platforms (and Android)
  • Qt Windows Extras module: Integrate with native code on Windows
  • Qt Mac Extras module: Integrate with native code on Mac OS X
  • Improved time zone and locale support with QTimeZone and QCollator
  • Bluetooth is supported for Linux with Qt Bluetooth module
  • Many fixes to improve support for OS X Mavericks

All of these changes together make Qt 5.2 an excellent basis for your desktop application.

Revamped Qt QML and Qt Quick

A huge amount of things have also changed under the hood. The Qt QML module has gotten a brand new engine, removing our dependency on the V8 JavaScript engine. The new engine is built from the ground up for Qt and with QML as the main use case in mind. It supports an interpreted mode, and can thus run on CPU architectures where JIT would not be available or platforms such as iOS where JIT’ing is not allowed by App Store policies. In earlier Qt versions, the integration with the V8 JavaScript engine was difficult and led to performance issues when crossing the boundary between the Qt and JS code bases. This problem has now been resolved by the new engine, which directly uses Qt data types and can quickly interact with all Qt code.

As a net result of these changes, you should see some performance improvements for most QML use cases. However, as Qt 5.2 is only laying down the foundation, performance when executing lots of program logic in JavaScript will be slower than with Qt 5.1. Qt 5.2.1 will bring quite some additional speed improvements and we have great plans for the engine in Qt 5.3.

A lot has also happened on the Qt Quick side of things. The renderer for the Scene Graph has been completely rewritten delivering much improved rendering performance for applications and freeing up more CPU time for the application itself. In addition, every QQuickView now renders in a thread of its own, ensuring that multiple scenes don’t block each other.

Qt Quick has also gotten support for a new animation type called Animator, which allows you to run many animations fully on the rendering thread. These animations cannot be blocked even if the main thread would be heavily loaded doing some extensive calculations.

Qt Creator 3.0 and Other Goodies

Qt 5.2 ships together with the new Qt Creator 3.0. The new Qt Creator improves support on mobile platforms and improved stability of it’s plugin APIs. This will create a foundation for 3rd party plugin extensions for Qt Creator, something we’re looking forward to expanding more in the future.

A couple of new modules and APIs also made it into Qt 5.2. Most notable are probably the support for positioning with the Qt Positioning module, Bluetooth support for Linux and BlackBerry with the Qt Bluetooth module, NFC support on BlackBerry, support for time zones and Unicode collation and the new Windows, Mac and Android Extras modules.

Qt WebKit has also received a major update now being based on a WebKit version from this summer. This includes many new features such CSS Blending, Geolocation, Web Notifications and a threaded garbage collector.

Qt in Action

We’ve deployed a couple of Qt Quick applications to the mobile marketplaces for you to try out. The “Quick Forecast” is a weather application using a web API and implemented completely with Qt Quick Controls. You can get it for Android from Google Play and for iOS from the App Store.

Learn More about Getting Started with the New Platforms

In the beginning of 2014, we are coming to meet you in person at a few locations around the world with our Qt Mobile Roadshow. The event is a full-day free developer event on how to get started developing cross-platform mobile applications with Qt. The locations and dates can be found here.

We are also organizing a couple of specific webinars around Qt for Android and iOS where you will get hands-on information on how to get started developing:

  • Qt on iOS, Hands-On – Dec 17th 2013
  • Multiscreen Development with Qt | Business Overview – Jan 9th 2014
  • Qt on Android, Hands-On – Jan 16th 2014

Please find the detailed webinar information registration from

Download & Try

You can download Qt 5.2 from our download page on or try the Qt Enterprise 30-day free trial from Qt Enterprise customers can access the Qt 5.2 release directly from their customer portal. If you are only targeting mobile, you can also download a 30-day free trial of Qt Mobile from


Last but not least, I’d like to thank everybody that has contributed to making Qt 5.2 the best Qt release yet. Many people from the community have worked very hard to make this release happen. I’d especially like to thank KDAB, Bogdan Vatra and the Necessitas project for their significant efforts and contribution to Qt 5.2. Also, I would like to extend a warm thank you to the KDE community that has contributed many interesting and valuable features, and our release team that did a lot of hard work behind the scenes pulling everything together into a releasable package.

We hope you enjoy Qt 5.2 as much as we enjoyed making it. Happy holidays!


Posted in Android, Announcements, cross-platform, desktop, Embedded, iOS, Mobile, Qt, Uncategorized

Qt 5.2 Beta Available

Published Wednesday October 23rd, 2013 | by

I’m happy to announce that Qt 5.2 Beta is now available. Lots of things have happened since Qt 5.1. Apart from new platforms, we have also added a significant amount of new functionality and done large improvements under the hood.

Qt Everywhere

With Qt 5.2 we are introducing the production-ready ports of Qt on Android and iOS. A lot of work has gone into these two platforms and these ports now extend Qt’s multi-platform promise to cover desktop, embedded and mobile platforms with just one framework, Qt.

With full support for Android, iOS and Blackberry 10, Qt 5.2 is a great solution for targeting the mobile markets with one Qt-based mobile application code. This is also a big plus for our existing Qt users. It makes it fast and easy to bring your existing desktop or embedded application to mobile, by simply recompiling it.

Enhanced Internals — More Power and Flexibility

Qt 5.2 introduces a new Scene Graph renderer. This new renderer improves the graphics performance of Qt Quick even further, freeing up more CPU time for the application and using the GPU in a much more efficient way.

The former JavaScript engine, V8, which was used internally by Qt Quick, has been replaced with a completely new, Qt-specific engine. This new engine is now designed from scratch for the use case of QML and Qt Quick. It internally operates directly with Qt data types, avoiding many costly conversions. It has both a JIT and an interpreter which greatly extends the range of platforms and operating systems it can support. The interpreter also allows us to use the engine on iOS and comply with iOS AppStore policies.

New Modules and Nice Goodies

Some of the main new features of Qt 5.2 include:

  • Qt Bluetooth: supported on Linux with Bluez 4.x and Blackberry
  • Qt NFC: supported on Blackberry
  • Qt Positioning: supported on all platforms using NMEA data, and using GeoClue on Linux
  • Qt Windows Extras: Integrate with native code on Windows
  • Qt Mac Extras: Integrate with native code on Mac OS X
  • Qt Android Extras: Integrate with native code on Android
  • Improved time zone and locale support with QTimeZone and QCollator
  • Enhancements to multiple Qt Widgets and a new one, the QKeySequenceEdit class
  • Animations for QML that can not be blocked by high loads on the main thread
  • Some new features and mobile specific controls for Qt Quick Controls
  • Accessibility is now fully supported on all desktop platforms and basic support on Android.

For a more detailed list of all new features in Qt 5.2 please have a look at the New Features page in the Qt Project wiki.

Qt Creator 3.0

Qt 5.2 will ship together with a new release of Qt Creator, Qt Creator 3.0. The beta for Qt Creator 3.0 has also been released today and is part of the Qt 5.2 beta binary packages. The new Qt Creator will feature improved Android support, experimental iOS support, a cleanup in the Creator plugin APIs and improved support for lldb.

Qt 5.2 Beta now comes with binary installers for Windows, Mac and Linux. You can get Qt 5.2 Beta from the Qt Project download area for open source users, and in the Qt Enterprise Customer Portal for existing Qt Enterprise customers.


Posted in Uncategorized

Qt 5.2 Alpha available

Published Monday September 30th, 2013 | by

Last weekend we started the release cycle for Qt 5.2 by branching our development code base into the stable branch. As a first step in the release cycle, the Alpha release of Qt 5.2 is now available. They are available from the Qt Project download area for the open source version and in your customer portal for Qt Enterprise users. The packages are source only and mainly for people already used to developing with Qt. Unless you feel comfortable compiling Qt on your own, you might want to wait for the beta which will come out within the next few weeks.

Apart from numerous bug fixes, Qt 5.2 offers a whole lot of new functionality. Here’s a short overview over the most important things

Android and iOS support

Qt 5.2 is the first Qt release to fully support development of Qt applications for Android and iOS. A lot of work has gone into supporting these two platforms, and now make Qt a great solution for development of mobile applications.

With the exception of WebKit, all essential modules are supported in both Android and iOS. This includes all of Qt Core, Qt Network, Qt Gui, Qt Widgets, Qt Qml, Qt Quick and Qt Multimedia. From the Qt add-ons Qt Sensors, Qt Graphical Effects, Qt Script and Qt SVG are supported. On Android a special Qt Android Extras module is also supported.

New modules

With Qt 5.2, we are also adding support for a couple of new add-on modules.

The last three add-ons contain platform specific additions, and complement the Qt X11 Extras module introduced with Qt 5.1.

Qt base modules

Qt Core got some new functionality, most notably the new QTimezone and QCollator classes. QTimezone is integrated with QDatetime and now allows proper handling of timezones. QCollator allows for locale specific sorting of strings, a long outstanding feature in Qt. Qt Network has received some improvements in its SSL handling. Qt Widgets has gotten lots of smaller improvements and a new QKeySequenceEdit class. Our Accessibility support has been greatly improved, with support for Mac OS X, basic support on Android and a set of public APIs that allow implementing accessibility support for custom widgets.

Qt Qml and Qt Quick

The QML engine has undergone some intensive work over the last 9 months, and the first results can be seen in Qt 5.2. Qt Qml is now using its own built-in Javascript engine and does not depend on V8 anymore. As such the QtJSBackend shared library has disappeared.

We are now using our own built-in engine instead of V8 for many reasons. One of the immediately visible benefits is that we are actually able to support Qt Quick 2 on iOS. In addition, the size of our Qml stack has decreased by around 5 MB and there’s one shared library less that needs to get deployed. Finally, it makes the whole stack a lot more maintainable and will thus allow us to improve the module at a faster pace in the future.

While the new engine is somewhat slower then V8 when it comes to pure Javascript performance, it allows us to optimise for the common use cases in QML and Qt Quick a lot better. Quite a lot of optimisation work is still ongoing now during the release cycle, and we expect to have comparable Javascript performance to Qt Script with 5.2.0. For QML bindings, we will see improvements for most use cases.

In addition, Qt Qml now supports File selectors to make it easier to customize your QML code depending on operating system and other variables.

Significant improvements also made it into Qt Quick. First and foremost, the module got a new scene graph renderer, that significantly reduces both CPU and GPU load for many use cases. The new Animator QML type offers animations that fully run on the rendering thread and won’t block or stutter even if your main thread has some long running calculations to perform.

The Qt Quick Controls have a couple of new Controls and features to offer. Switches and Busy Indicators got added, Table view now supports movable columns and extended selections. In addition, deployment has been greatly simplified.

Qt Creator

Last but not least, we are planning to ship Qt 5.2 together with a new release of Qt Creator, Qt Creator 3.0. The new Creator will feature an improved Android support, initial iOS support, extensions for multiple screens, a cleanup in the Creator plugin APIs and initial support for lldb.


As you can see, Qt 5.2 will contain a lot of great new features and especially the support for mobile operating systems is a huge step forward for us. With the Alpha out, we are now in working hard towards providing a Beta as soon as possible. The Beta will again include binary packages. After the Beta work will go on towards the Release Candidate and Qt 5.2.0 final, which we hope to release by the end of November.

There will also be many talks about Qt 5.2 and its new features during the upcoming Qt Developer days in Berlin and San Francisco. So if you want to find out more, come and join us there.

I’d like to invite everybody to give 5.2 a try and report any issues you find back to our bug tracker.


Posted in Uncategorized

Introducing the Qt WebEngine

Published Thursday September 12th, 2013 | by

A lot has happened with Web technologies in general since we introduced the first version of Qt WebKit in 2007. From having a couple of percent market share, the WebKit open source project nowadays has became the most widely used browser engine in the world. While the Qt port of WebKit was pretty much the first non-Apple port of WebKit, many other projects and companies joined the project over the years to follow.

The Chromium project took an especially big role in the project and became over time the biggest contributor to WebKit (followed by Apple and with Qt on the third place). The cooperation between different companies on one open source project was, however, never without difficulties, and this spring Google decided to leave the WebKit project in favor of their own fork of WebKit, Blink.

Since then, Blink, which really is a very integrated part of Chromium, and WebKit have been going separate ways, and the two code bases have been rapidly diverging. Because of this, the Digia Qt R&D WebKit team decided to have a closer look at both Chromium and WebKit to decide how we could offer the best possible Web engine for Qt in the future.

After spending some time researching and looking at both alternatives, we have now come to the conclusion, that we will base our future Web engine on Chromium. The Qt WebEngine. There are many reasons that lead to this decision:

  • Chromium has a cross-platform focus, with the browser being available on all major desktop platforms and Android. The same is no longer true of WebKit, and we would have had to support all the OS’es on our own in that project.
  • There are many things that are available out-of-the box from Chromium, which would require a lot of work for us to support ourselves in WebKit. One example, is the whole platform/OS adaptation that we can simply re-use. Multimedia and new HTML5 features such as WebRTC are working out-of the-box and don’t require any Qt-specific code.
  • As using Chromium simplifies handling the OS integration, this allows us to spend additional time to focus on the upper layers to provide a great and easy-to-use API and a seamless integration into Qt as possible.
  • We are seeing that Chromium is being developed with very strict control on quality. This simplifies our testing efforts and will allow us to provide a more stable and higher quality Web engine.
  • Chromium will allow us to do a better and more performant integration with both widgets and the Qt Quick scene graph than we would be able to do with WebKit

Finally, we are seeing that Chromium is currently by far the most dynamic and fastest moving browser available. Basing our next-generation Web engine on Chromium is a strategic and long-term decision. We strongly believe that the above facts will lead to a much better Web engine for Qt than what we can offer with Qt WebKit right now. We also believe that the combination of the best-in-class browser engine with Qt as a native framework gives an incredibly strong offering especially for the creation of embedded devices that require a Web browser in addition to best-in-class UI performance.

One of the fundamentals of Chromium is that all rendering of Web content happens in a different process for security and stability reasons. This does, however, make it impossible to provide certain aspects of our current Qt WebKit API with Chromium. One notable part is probably the QWebElement API. We will also have to change how QObject embedding is being done, since all communication between the QObject and the web page will have to happen asynchronously.

What does all of this mean for users of Qt WebKit?
First of all, there’s nothing to be afraid of. For many use cases, where Web content is being embedded into applications, Qt WebKit works fine right now, and will continue to do so in the years to come. After the release of Qt 5.2, we will focus most of our new development efforts on the new Qt Web Engine. So, if you want to have all the lastest and greatest HTML5 features available for your application or device, you should consider moving over to Qt WebEngine once we have a release that covers the API features you require.

We will do our best to make moving over from Qt WebKit to the new Qt WebEngine as easy and seamless as possible. For the Qt Quick WebView element, we can most likely provide a close to 100% compatible API. For people using the basic QWebView API, we also have good news. Most of that API is available in an almost source-compatible fashion in the new Qt WebEngine. If you use the QObject bridge or the QWebElement API, we recommend you wait a bit longer with moving, as a replacement API for those will most likely not be part of the first version of Qt WebEngine.

While we no longer will do any feature development in Qt WebKit, the existing version will continue to be available. Digia will continue to support Qt WebKit for Qt Enterprise commercial license holders as defined in the license agreement, and can also offer extended lifetime support.

Work is now ongoing to provide you with a Technology Preview of the new Qt WebEngine as fast as possible. Our goal is to have that available together with the Qt 5.2 release this autumn. The first fully supported release will then, most likely, come as part of Qt 5.3 next spring. For the first version, we are planning to support the new Qt WebEngine module on Windows, Mac OS X, Linux and embedded Linux.

For more information on the Qt WebEngine have a look at the Qt Project wiki. There you can also find more detailed information about how to build the Web engine yourself, how to port existing code and what our future plans for the module are.

While this is a rather large change for Qt, I strongly believe this will give us a much better and more competitive Web platform in the years to come.

The best way to find out what is going on with Qt WebEngine and our future direction is to join us at Qt Developer Days where our lead developers on the project will talk about the latest developments. Make sure to register to Qt Developer Days at


Posted in Qt, WebKit

  1. Pages:
  2. 1
  3. 2
  4. 3
  5. 4