A lightweight framework on top of the Qt scene graph and only few classes from Qt/Quick. It is usable from C++ and/or QML.
Go to file
Uwe Rathmann e4b9b8bd1b Squashed commit of the following:
commit c6aec22cbdbed31955e70ea73fc6863d9369ba22
Author: Uwe Rathmann <Uwe.Rathmann@tigertal.de>
Date:   Tue Oct 24 11:34:55 2023 +0200

    wip

commit 473946633e150129a3ba67ea321bda23fcd0f5a7
Author: Uwe Rathmann <Uwe.Rathmann@tigertal.de>
Date:   Tue Oct 24 11:28:23 2023 +0200

    wip

commit 368f6edac32457d6a060c2f2e8a722c0d15bf35c
Author: Uwe Rathmann <Uwe.Rathmann@tigertal.de>
Date:   Tue Oct 24 11:26:46 2023 +0200

    wip

commit eccffafec006d471cc691f3d10143219ec263c63
Author: Uwe Rathmann <Uwe.Rathmann@tigertal.de>
Date:   Tue Oct 24 11:22:01 2023 +0200

    wip

commit c5ae5025d4ed0ea7184fb8b4fa97df7f3ca54c0e
Author: Uwe Rathmann <Uwe.Rathmann@tigertal.de>
Date:   Tue Oct 24 10:53:09 2023 +0200

    wip

commit 174b1d946067c5b5c0bf4a9982d7b3f7f717d263
Author: Uwe Rathmann <Uwe.Rathmann@tigertal.de>
Date:   Tue Oct 24 10:51:54 2023 +0200

    wip

commit 3e89f17ea971adc19c89cca0eb38dc3e973a090e
Author: Uwe Rathmann <Uwe.Rathmann@tigertal.de>
Date:   Tue Oct 24 10:15:17 2023 +0200

    wip

commit 499a13ab74501c24f1e0effe56dfb9cf9ff9bf63
Author: Uwe Rathmann <Uwe.Rathmann@tigertal.de>
Date:   Tue Oct 24 10:03:55 2023 +0200

    wip

commit 935ffc6d23dcd20a2c70898f28063fcdffea0795
Merge: 82f44d41 0cf60b41
Author: Uwe Rathmann <Uwe.Rathmann@tigertal.de>
Date:   Mon Oct 23 10:49:32 2023 +0200

    Merge branch 'drawer' into Overlay

commit 0cf60b414cee9a26fa5a53f05938e69ab39294d7
Merge: da76eb6d 2013338d
Author: Uwe Rathmann <Uwe.Rathmann@tigertal.de>
Date:   Mon Oct 23 10:49:13 2023 +0200

    Merge branch 'features/drawer' into drawer

commit 82f44d41c03f8cedab8b1bf3f1c164dfa65200cf
Author: Uwe Rathmann <Uwe.Rathmann@tigertal.de>
Date:   Sun Oct 22 10:44:50 2023 +0200

    wip

commit 3b254ff4551d457e1581b5dbb85fae2dcf55e2cc
Author: Uwe Rathmann <Uwe.Rathmann@tigertal.de>
Date:   Sun Oct 22 10:43:15 2023 +0200

    wip

commit 81e2bd8b35fb4a361e67f8a56870d99ea05ffa4d
Author: Uwe Rathmann <Uwe.Rathmann@tigertal.de>
Date:   Sun Oct 22 09:50:07 2023 +0200

    wip

commit 916f5ca888f675bdded0b97b763de02c8c6c12ff
Author: Uwe Rathmann <Uwe.Rathmann@tigertal.de>
Date:   Fri Oct 20 17:08:53 2023 +0200

    wip

commit b3e8fd4d7cf4eab710b7781bb1e9dc730548d51b
Author: Uwe Rathmann <Uwe.Rathmann@tigertal.de>
Date:   Fri Oct 20 17:03:12 2023 +0200

    wip

commit da76eb6df5353029856084e6306db32cb2712b6b
Author: Uwe Rathmann <Uwe.Rathmann@tigertal.de>
Date:   Fri Oct 20 16:05:19 2023 +0200

    wip

commit 72fbd0b6fad4b33e09643e5a2c67833f6e2c4abd
Author: Uwe Rathmann <Uwe.Rathmann@tigertal.de>
Date:   Fri Oct 20 15:21:14 2023 +0200

    wip

commit 7f899d67d6c8f7f98212030ac0e83e86581cefff
Author: Uwe Rathmann <Uwe.Rathmann@tigertal.de>
Date:   Fri Oct 20 15:00:42 2023 +0200

    wip

commit 72872cad2a0749afe9c901775c18459ac4cd956a
Author: Uwe Rathmann <Uwe.Rathmann@tigertal.de>
Date:   Fri Oct 20 13:49:05 2023 +0200

    wip

commit f16572e29a5fe8851479e2be6e04ff2d991e9ebd
Author: Uwe Rathmann <Uwe.Rathmann@tigertal.de>
Date:   Fri Oct 20 13:40:47 2023 +0200

    wip

commit 4300a2cf225554f93cb492062f89af51dcc5df64
Author: Uwe Rathmann <Uwe.Rathmann@tigertal.de>
Date:   Fri Oct 20 13:34:37 2023 +0200

    wip

commit c85150bcb98934b144e4453f12fbe37c4900049f
Author: Uwe Rathmann <Uwe.Rathmann@tigertal.de>
Date:   Fri Oct 20 13:32:44 2023 +0200

    wip

commit 00d069d134319b0c3fb6d192cba32c31640e161f
Author: Uwe Rathmann <Uwe.Rathmann@tigertal.de>
Date:   Fri Oct 20 13:21:45 2023 +0200

    wip

commit 36b4a203a3d761d4a3a5e17e1ba2deb7f9b37740
Author: Uwe Rathmann <Uwe.Rathmann@tigertal.de>
Date:   Fri Oct 20 12:52:52 2023 +0200

    wip

commit e27fa8af6ddc233862ec431e2c129299e24f4ee0
Author: Uwe Rathmann <Uwe.Rathmann@tigertal.de>
Date:   Fri Oct 20 11:12:42 2023 +0200

    wip

commit 579a45149a92ffef72c569c79456a3a2c753e37c
Author: Uwe Rathmann <Uwe.Rathmann@tigertal.de>
Date:   Fri Oct 20 10:57:51 2023 +0200

    QskSlideIn added
2023-10-24 11:39:32 +02:00
.github/workflows Add windows style 2023-05-09 07:49:48 +02:00
cmake BSD-3-Clause license 2023-04-06 09:23:37 +02:00
doc QskGestureRecognizer using event filtering 2023-10-05 08:59:30 +02:00
examples QskDrawer improvements 2023-10-17 14:36:44 +02:00
inputcontext BSD-3-Clause license 2023-04-06 09:23:37 +02:00
playground Squashed commit of the following: 2023-10-24 11:39:32 +02:00
qmlexport progress bars: Introduce progress ring and refactor 2023-08-09 08:33:05 +02:00
skins Squashed commit of the following: 2023-10-24 11:39:32 +02:00
src Squashed commit of the following: 2023-10-24 11:39:32 +02:00
support respect the ordering from the skin factories instead of sorting them 2023-06-20 09:20:51 +02:00
tools BSD-3-Clause license 2023-04-06 09:23:37 +02:00
.clang-format fix lower case 2023-08-09 08:30:56 +02:00
.gitignore bye,bye qmake, say hello to cmake 2023-04-05 17:47:15 +02:00
.qmake.conf project file include mechanism based on QMAKEFEATURES 2019-03-31 13:05:25 +02:00
.uncrustify upgraded to uncrustify 0.76.0 - still not happy with the C++ beautifier 2023-02-28 15:49:42 +01:00
CMakeLists.txt BSD-3-Clause license 2023-04-06 09:23:37 +02:00
COPYING BSD-3-Clause license 2023-04-06 09:23:37 +02:00
README.md BSD-3-Clause license 2023-04-06 09:23:37 +02:00

README.md

QSkinny

CMake Build Matrix

The (Q)Skinny library is a framework built on top of the Qt scene graph and very few core classes from Qt/Quick. It offers a set of lightweight controls, that can be used from C++ and/or QML.

Doing the implementation in C++ allows to make use of the "scene graph" classes. Building controls from scene graph nodes allows for a lighter implementation than found with stacking "heavier" objects like QObject or QQuickItem. Offering a full featured C++ API allows the application code to benefit from following the same strategies.

Being "skinny" also means a design that separates concerns between the API and logic of the controls themselves, the styling of these controls, and the delegated rendering of the controls to the screen.

The code already provides a solid fundament for an automotive GUI with currently ~300K lines of pure C++ code. As expected it results in a good startup performance and a low memory footprint.

Nontheless QSkinny is lacking in areas like documentation or appealing default skins. The QML API has not been completed after reaching a proof of concept state. Furthermore the current selection of the implemented controls is limited to the needs of the driving projects.

QSkinny is supposed to run on all platforms being supported by Qt/Quick. But so far only Linux is actively tested. It might support all versions Qt >= 5.15, but you can rely on:

  • Qt 5.15
  • current long term supported ( LTS ) version of Qt
  • current version of Qt

On debian bullseye these packages need to be installed: build-essential qt-qmake qtbase5-dev qtbase5-private-dev qtdeclarative5-dev qtdeclarative5-private-dev libqt5svg5-dev.

Optional: When enabling the hunspell feature the following package needs to be installed: libhunspell-dev

Optional: When enabling the pinyin feature the following package needs to be installed: libimepinyin-dev

If you want to know more about QSkinny - or even like to give it a specific direction - please contact support@qskinny.org.

IOT dashboard

Contributing to QSkinny

QSkinny is licensed under the BSD 3 Clause License ( https://opensource.org/license/bsd-3-clause ). However we want to be able to offer more licenses on request.

If you are fine with these terms, you are welcome to contribute to QSkinny by completing the following steps:

  1. Agree to the terms of the Contributor Agreement. You can create a pull request first, then the licensing bot will check automatically whether you already signed the Agreement or not. If you have not signed it yet, it will take you to the Agreement to agree.
  2. Submit your pull request for review.