This YouTube short summarizes changes needed to have a Qt Quick app work with both Qt 5 and Qt 6. It primarily focuses on required changes to QML and CMake files, but it also mentions other aspects of porting C++ and shaders that are discussed more in depth in other videos.
Qt has a property system that is used from many places, including Qt Designer, QML, and other language bindings. It can, however, also be very useful on its own, as in the example I show towards the end of this episode. Watch this episode to get a better understanding of how it all fits together.
Many Windows C++ applications use MFC for UI, but Qt offers more modern tools including intuitive APIs, better modern C++ integration, and designer/localization tools. However, migrating large MFC codebases is time-consuming, and while some Qt modules integrate seamlessly, UI-related modules present incompatibilities (like QDialog not being modal for MFC applications). Find out more in this session.
The KDE Community has developed Qt software for 25 years, porting code across all major Qt versions. With Qt 6's release, the next transition presents challenges and opportunities. This talk covers the work done and planned for Qt 6 transition, challenges faced, design decisions, and how Qt 6's new features benefit KDE, helping attendees plan their own porting projects.
Porting legacy code from Motif, MFC, Photon, or a previous Qt version to a more recent Qt version can be a big challenge. There are a number of pitfalls in a large porting effort that can significantly increase time, cost, and complexity, leading to risk of project derailment. You may have languages, frameworks, and windowing […]
This talk highlights pitfalls and solutions when migrating QWidget desktop applications to Qt Quick, using MuseScore's transition as an example. We'll cover challenges in modernizing 2000s-era designs, effective QWidget-to-QML migration strategies, limitations of mixing both systems, and approaches to overcome or avoid these issues.
KDAB is proud to announce that for the first time ever we will be present at Embedded Technology outside of Tokyo in Japan. Every year more than 25000 visitors attend over 3 days! The event takes place in the Pacifico Yokohama exhibition center and focuses on Embedded AI, IoT Wireless Technology, Smart Sensing and Safety […]
KDAB has unique experience in porting the code base for toolkits like Qt 3, Qt 4, Motif, Java, Tcl, GTK, .NET, MFC, and Photon to Qt 5. Porting legacy GUI toolkits to Qt5 is a job where proven experience saves a lot of time.
KDAB has unique experience in porting the code base for toolkits like Qt 3, Qt 4, Motif, Java, Tcl, GTK, .NET, MFC, and Photon to Qt 5. Porting legacy GUI toolkits to Qt 5 is a job where proven experience saves a lot of time. In this presentation we highlight the main problems facing developers […]
Using OpenGL code with Qt is a long love story... long enough that there might be skeletons in the closet. Indeed, the OpenGL code of your Qt application could have been written before the modernization of the OpenGL API to exploit better GPUs. In this talk, we will walk through a technique to help refactor […]
Q_FOREACH (or the alternative form, foreach) will be deprecated soon, probably in Qt 5.9. Starting with Qt 5.7, you can use the QT_NO_FOREACH define to make sure that your code does not depend on Q_FOREACH. You may have wondered what all the fuss is about. Why is there a continuous stream of commits going to […]
Microsoft Windows has a long history of embedded operating systems going back to 1996, branded as Windows Embedded Compact, Windows Embedded CE, Windows CE, Windows Compact, Windows Phone, Windows Runtime, and an assortment of others. One of these fine platforms might even form the basis of your embedded product. Trouble is, with the shiny new […]
Starting with Qt4 and QtQuick 1 we built nearly the entire GUI of our software with QML. We started with QDeclarativeItems and moved to QQuickItems while migrating to Qt5.
Abstract: It is easier and easier to create a proper QtQuick application from scratch. But is it really that simple to bring existing code in the QtQuick structure? It can get especially challenging for a large project which collected C++ collected over more than 15 years. What can we do of all that code? Temptation […]
http://www.kdab.com/wp-content/uploads/stories/photon_migration.mp4 The Photon to Qt migration framework helps you control the complexity and cost of the migration project. The framework consists of the following parts: a partial implementation of the Photon API in Qt, covering the most important use cases a library of Qt widgets as slot-in replacements for Photon widgets that do not exist […]
One of the useful outcomes the work Bertjan did on tooling for program understanding and refactoring is a list of considerations we can use to assess the suitability of new tools. Requirements for a porting system Section 1.3.5 of his thesis details the requirements for a similar porting system: GR1: Scalability The qt4to5 porting tool […]
Like many companies in tech, KDAB allows employees some time to spend on 'personal education', which must be somewhat job-related, but not necessarily Qt-related, and which must be reported on to colleagues. Sometimes that involves reading a book or investigating a new technology, or writing some new interesting tooling, as was the birth of GammaRay. […]
Porting from Qt 4 to Qt 5 is intentionally easy. There has been a conscious effort throughout the development of Qt 5 so far to maintain source compatibility compared to Qt 4. Unlike the port from Qt 3 to Qt 4, central classes have not experienced large API cleanups, and there are few new frameworks […]
Maximize the value of your project investments in legacy GUI toolkits with KDAB's proven expertise in one-off migrations. With extensive experience in code migration, we've developed comprehensive tooling and can provide you with recommendations on modernizing your code base.
Updating outdated systems through modernizing UI technologies can drive user satisfaction. KDAB is your partner in taking it to the next level.