Skip to content

KDAB TV – Archive

KDAB engineers have been giving in-depth presentations at major events for many years now. From 2012 to 2014, KDAB organized the biggest Qt community event of the year, Qt Developer Days in Berlin. Below you can view some of the presentations that we gave, many of these are still relevant today.

Recorded at the Qt Developer Days in Berlin in 2013.
Slides available at https://devdays.kdab.com/?page_id=225

Short Abstract:
QtQuick provides a modern 2D UI framework, rendered using OpenGL. In a wide range of applications and fields, this UI needs to be combined with existing rendering technologies and libraries, ideally in ways that minimise the impact on performance while still allowing the full feature set of Qt to be exploited.

Abstract:
"QtQuick in Qt5 uses OpenGL to deliver fluid, performant visuals, and an internal scene-graph structure to permit threaded rendering, decoupling the main application thread from interacting directly with the graphics driver. For developers work with an existing rendering or visualisation technology, this presents both an opportunity but also problems; QtQuick offers a compelling, modern 2D UI with many advantages.

Unfortunately most existing rendering libraries make strong assumptions about how they permit other code (such as Qt) to integrate with their rendering loop and data, and Qt Quick itself was not designed to support efficient integration into foreign rendering environments.

In this presentation will will investigate some of the problems, work-arounds and ultimate solutions encountered in integrating Qt Quick with different 3D renderers, including the changes necessary both in Qt and on the 3rd-party side. This will involve material on threading, OpenGL state management, and the internals of both Qt Quick and scene-graphs in general. To motivate the discussion, some real-world cases will examined and presented, including integration of Qt Quick with OpenSceneGraph, the Visualisation Toolkit (VTK) and (time-permitting) the Open Source Graphics Engine (OGRE).

Presenter Biography:
Working as a software developer at KDAB. James has been developing with Qt since 2002, and contributes to the current maintenance of Mac platform support, and the development of OpenGL and 3D support in Qt. James has a background in user-interface, graphics and simulation development, as well as a long history of development on OS-X and prior versions of Mac OS. He is a lead developer on FlightGear, the open-source flight simulator, and holds a B.Sc. in Computer Science.
QtDD13 - James Turner - Integrating QtQuick with 3D renderers

Recorded at the Qt Developer Days in Berlin in 2013.
Slides available at https://devdays.kdab.com/?page_id=225

Short Abstract:
QtQuick provides a modern 2D UI framework, rendered using OpenGL. In a wide range of applications and fields, this UI needs to be combined with existing rendering technologies and libraries, ideally in ways that minimise the impact on performance while still allowing the full feature set of Qt to be exploited.

Abstract:
"QtQuick in Qt5 uses OpenGL to deliver fluid, performant visuals, and an internal scene-graph structure to permit threaded rendering, decoupling the main application thread from interacting directly with the graphics driver. For developers work with an existing rendering or visualisation technology, this presents both an opportunity but also problems; QtQuick offers a compelling, modern 2D UI with many advantages.

Unfortunately most existing rendering libraries make strong assumptions about how they permit other code (such as Qt) to integrate with their rendering loop and data, and Qt Quick itself was not designed to support efficient integration into foreign rendering environments.

In this presentation will will investigate some of the problems, work-arounds and ultimate solutions encountered in integrating Qt Quick with different 3D renderers, including the changes necessary both in Qt and on the 3rd-party side. This will involve material on threading, OpenGL state management, and the internals of both Qt Quick and scene-graphs in general. To motivate the discussion, some real-world cases will examined and presented, including integration of Qt Quick with OpenSceneGraph, the Visualisation Toolkit (VTK) and (time-permitting) the Open Source Graphics Engine (OGRE).

Presenter Biography:
Working as a software developer at KDAB. James has been developing with Qt since 2002, and contributes to the current maintenance of Mac platform support, and the development of OpenGL and 3D support in Qt. James has a background in user-interface, graphics and simulation development, as well as a long history of development on OS-X and prior versions of Mac OS. He is a lead developer on FlightGear, the open-source flight simulator, and holds a B.Sc. in Computer Science.

9 0

YouTube Video UEw2Q0pZbjQwZ042aTJteEF6WUFWeEdXTlBObm9ERzkwOS5ENDU4Q0M4RDExNzM1Mjcy

QtDD13 - James Turner - Integrating QtQuick with 3D renderers

Recorded at the Qt Developer Days in Berlin in 2013.
Slides available at https://devdays.kdab.com/?page_id=225

Short Abstract:
QML is the language that makes writing application UIs easier than ever before. QmlWeb now brings this ease to the web.

While the demand has risen to use web technologies on the desktop, QmlWeb takes the opposite approach: The JavaScript library understands QML and renders QtQuick based applications to a website using the webbrowser's Document Object Model and CSS. In other words, QmlWeb enables to use modern desktop technologies on the web. Using e.g. QML's property bindings and QtQuick's anchor layouts allows you to do tasks like complex positioning and animations with just a single line of code.

This talk will provide an overview of what QmlWeb is, how it works, what its advantages and where its limits are. It will show how you can reuse knowledge from desktop development for web applications.

Abstract:
QML is the language that makes writing Qt application UIs easier than ever before. QmlWeb now brings this ease to the web.

Traditionally desktop applications were written in languages like C or C++. Web technologies like HTML and PHP were mainly used to write static websites. With the rise of modern web applications and technologies like HTML 5, CSS 3 and ECMAScript 5, those technologies became more and more popular. But technological development on the desktop side continued as well. Modern technologies like QML + QtQuick allow us to write complex user interfaces easier than ever before in a declarative manner.

For companies the separation between desktop and web technologies means that they have to maintain two seperated groups of developers, one for doing desktop applications, and one for web development. Because of that the demand has risen to use web technologies on the desktop and especially for mobile applications as well.

QmlWeb takes the opposite approach. The JavaScript library understands QML and is able to render a QtQuick based application to a website using the webbrowser's Document Object Model and CSS. It is capable of property bindings, anchor-layouting and most kinds of simplifications offered by QML. Impressive animations are only a few simple lines of QML code away. States and components help to keep even complex applications well-stuctured and easy to read. Many of the little pains webdevelopers often have to struggle with are becoming just a single line of QML code.

To achieve this, QmlWeb e.g. implements a system to track dependencies between properties and automatically update dependant properties on change. Positioning, which is one of the most inconvenient things in CSS, is completely done in JavaScript and then exposed to the browser using absolute positioning in CSS.

The talk will provide an overview of what QmlWeb is, how it works internally and what its current state of development is. It will demonstrate how developers can reuse their existing knowledge from the desktop for web applications. Therefore, it will include a live demo, in which a small web application using QmlWeb will be written. The talk will show what pieces of QtQuick are supported, what is still missing and also what features QmlWeb adds to match with the web. QmlWeb will be compared to other technologies to display where its advantages and where its limits are. At the end the audience should have an idea of what QmlWeb can do and should be able to decide whether QmlWeb could be suitable for his/her next web application.

Presenter Biography:
Anton Kreuzkamp is member of the KDE community since 2010, supporting Rekonq and Plasma development, where he first got in touch with QML. Anton started to work on QmlWeb during the last year within the context of his graduation from secondary school in 2013. By now, he is the main developer of QmlWeb.
QtDD13 - Anton Kreuzkamp & Thomas McGuire - QmlWeb -- Running QtQuick Applications on the Web

Recorded at the Qt Developer Days in Berlin in 2013.
Slides available at https://devdays.kdab.com/?page_id=225

Short Abstract:
QML is the language that makes writing application UIs easier than ever before. QmlWeb now brings this ease to the web.

While the demand has risen to use web technologies on the desktop, QmlWeb takes the opposite approach: The JavaScript library understands QML and renders QtQuick based applications to a website using the webbrowser's Document Object Model and CSS. In other words, QmlWeb enables to use modern desktop technologies on the web. Using e.g. QML's property bindings and QtQuick's anchor layouts allows you to do tasks like complex positioning and animations with just a single line of code.

This talk will provide an overview of what QmlWeb is, how it works, what its advantages and where its limits are. It will show how you can reuse knowledge from desktop development for web applications.

Abstract:
QML is the language that makes writing Qt application UIs easier than ever before. QmlWeb now brings this ease to the web.

Traditionally desktop applications were written in languages like C or C++. Web technologies like HTML and PHP were mainly used to write static websites. With the rise of modern web applications and technologies like HTML 5, CSS 3 and ECMAScript 5, those technologies became more and more popular. But technological development on the desktop side continued as well. Modern technologies like QML + QtQuick allow us to write complex user interfaces easier than ever before in a declarative manner.

For companies the separation between desktop and web technologies means that they have to maintain two seperated groups of developers, one for doing desktop applications, and one for web development. Because of that the demand has risen to use web technologies on the desktop and especially for mobile applications as well.

QmlWeb takes the opposite approach. The JavaScript library understands QML and is able to render a QtQuick based application to a website using the webbrowser's Document Object Model and CSS. It is capable of property bindings, anchor-layouting and most kinds of simplifications offered by QML. Impressive animations are only a few simple lines of QML code away. States and components help to keep even complex applications well-stuctured and easy to read. Many of the little pains webdevelopers often have to struggle with are becoming just a single line of QML code.

To achieve this, QmlWeb e.g. implements a system to track dependencies between properties and automatically update dependant properties on change. Positioning, which is one of the most inconvenient things in CSS, is completely done in JavaScript and then exposed to the browser using absolute positioning in CSS.

The talk will provide an overview of what QmlWeb is, how it works internally and what its current state of development is. It will demonstrate how developers can reuse their existing knowledge from the desktop for web applications. Therefore, it will include a live demo, in which a small web application using QmlWeb will be written. The talk will show what pieces of QtQuick are supported, what is still missing and also what features QmlWeb adds to match with the web. QmlWeb will be compared to other technologies to display where its advantages and where its limits are. At the end the audience should have an idea of what QmlWeb can do and should be able to decide whether QmlWeb could be suitable for his/her next web application.

Presenter Biography:
Anton Kreuzkamp is member of the KDE community since 2010, supporting Rekonq and Plasma development, where he first got in touch with QML. Anton started to work on QmlWeb during the last year within the context of his graduation from secondary school in 2013. By now, he is the main developer of QmlWeb.

30 3

YouTube Video UEw2Q0pZbjQwZ042aTJteEF6WUFWeEdXTlBObm9ERzkwOS4yMDhBMkNBNjRDMjQxQTg1

QtDD13 - Anton Kreuzkamp & Thomas McGuire - QmlWeb -- Running QtQuick Applications on the Web

Recorded at the Qt Developer Days in Berlin in 2013.
Slides available at https://devdays.kdab.com/?page_id=225

Short Abstract:
Fast code is important -- just think of performance constrained embedded platforms. But how do you make your C++ application faster?

This talk will show you how to find bottlenecks in a C++ program using various tools. Then we will look into some solutions to common issues and top it off with some guidelines for new code.

Abstract:
Often one might think: Machines get faster and faster, thus it gets less and less important whether my code runs fast or not.

False! Making your applications faster is more important than ever, especially when you target embedded devices or battery powered devices. And even on the desktop your users will appreciate fast applications that do more in less time.

In the talk I'll present the most useful tools I know for investigating the performance of a C++ application. We will look at various issues, such as memory consumption, finding CPU hot spots but also at some more complicated threading related performance problems like lock contention. For each issue I will try to present some motivating code example and show you how to improve your code to achieve a better performance.

Presenter Biography:
I work at KDAB as a Software Engineer and contribute to KDE for quite some years now. There I am one of the most active contributors to KDevelop and Kate. Tooling in general is of huge interest to me, I wrote the Massif-Visualizer, played around with a GDB based profiler called Pace and also looked into tooling around Linux malloc to investigate memory fragmentation issues. At KDAB I also worked on GammaRay which is invaluable to any Qt developer.
QtDD13 - Milian Wolff - Apps on Speed

Recorded at the Qt Developer Days in Berlin in 2013.
Slides available at https://devdays.kdab.com/?page_id=225

Short Abstract:
Fast code is important -- just think of performance constrained embedded platforms. But how do you make your C++ application faster?

This talk will show you how to find bottlenecks in a C++ program using various tools. Then we will look into some solutions to common issues and top it off with some guidelines for new code.

Abstract:
Often one might think: Machines get faster and faster, thus it gets less and less important whether my code runs fast or not.

False! Making your applications faster is more important than ever, especially when you target embedded devices or battery powered devices. And even on the desktop your users will appreciate fast applications that do more in less time.

In the talk I'll present the most useful tools I know for investigating the performance of a C++ application. We will look at various issues, such as memory consumption, finding CPU hot spots but also at some more complicated threading related performance problems like lock contention. For each issue I will try to present some motivating code example and show you how to improve your code to achieve a better performance.

Presenter Biography:
I work at KDAB as a Software Engineer and contribute to KDE for quite some years now. There I am one of the most active contributors to KDevelop and Kate. Tooling in general is of huge interest to me, I wrote the Massif-Visualizer, played around with a GDB based profiler called Pace and also looked into tooling around Linux malloc to investigate memory fragmentation issues. At KDAB I also worked on GammaRay which is invaluable to any Qt developer.

4 1

YouTube Video UEw2Q0pZbjQwZ042aTJteEF6WUFWeEdXTlBObm9ERzkwOS5GM0Q3M0MzMzY5NTJFNTdE

QtDD13 - Milian Wolff - Apps on Speed