RSSAmplifier

Blog

Edelhirsch Software

Beautiful technical UIs

/RSS feed ↗9 posts

Latest posts

A taxonomy of modern user interfaces

We implemented Google’s Material 3 and Microsoft’s Fluent 2 design systems for QSkinny, as shown in the screenshots below (still an ongoing effort). This required some new features to be implemented, some of which hinted at new general paradigms within many other design systems. Contrarily, some features often found in commercial design systems seem to have been deliberately left out of these two…

Fendt QSkinny UI demo

A demo showing the Fendt One user interface written with QSkinny and Qt.

Classifying brain tumors with machine learning

This blog post shows the findings of a brain tumor classification problem, which was conducted for the talk “Machine Learning in medicine” for the ENEA 2020 conference (the yearly conference of the European Neuroendocrine Association). Hardware For this problem a NVidia Jetson TX2 developer kit was used. Probably that board was more designed to be used for inference on the edge, but it turned out…

QSkinny - A new approach for a QtQuick framework

QSkinny is a framework that is built on top of the Qt scene graph and very few core classes from QtQuick. It offers a C++ and/or QML API. Besides trying to find a good combination of concepts from Qt/Widgets and Qt/Quick it is also experimenting with new ideas like a focus on vector graphics or dynamic theming. This presentation will give an overview of those ideas, the resulting architecture and…

QML CachingLoader Caching loaded pages

When writing QML, using a Loader can come in handy: Certain UI elements are loaded in a deferred way, e.g. not at app startup, but when the user clicks a button. When alternating between source elements of a Loader, the old component will always be deleted, as the documentation states: “Setting source to a new URL will also cause the item created by the previous URL to be unloaded.” This might not…

Using QtWidgets in QML

The somewhat official story goes like this: You write your desktop application in QtWidgets, and an embedded UI with QML. QtWidgets offers an extensive set of controls, and QML is good for rapid prototyping and easily embedding fancy stuff like animations, because of its hardware-rendered backends like OpenGL. Porting a QtWidgets app to QML can be a huge task, and sometimes it might not be…

26 tips for Qt projects on Embedded targets

Some of them are less surprising than others, and some might be rather subjective: Choose the right license for Qt, i.e. whether you want to buy licenses from The Qt Company or whether you want to go with LGPL. There is a nice presentation from Burkhard Stubert about this. When choosing hardware: Always choose a GPU whose OpenGL driver is well supported. Also, when using QML, choose a system with…

Using the Qt Scene Graph from C++ with QSkinny

Modern Qt apps instantiate a QML engine to parse UI files and display their contents. Under the hood, there is a scene graph taking care of handling graphical resources efficiently. The QSkinny framework on the other hand provides a C++ API on top of the Qt scene graph without the need for QML. The Qt scene graph sits on top of OpenGL and is used by QML UI elements. The QSkinny framework, on the…

Meet QSkinny, a lightweight Qt UI library

(This post appeared on my personal blog first.) QSkinny offers a Qt API to write user interfaces in C++. It is inspired by the class design of QtWidgets, but runs on top of QtQuick. This means that QSkinny is hardware accelerated and can make use of e.g. animations and shaders. Below is a screenshot of a sample UI written with QSkinny: How does it work? Check out a simple “hello world” program…

Edelhirsch Software · RSS Amplifier