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 862e566507 Squashed commit of the following:
commit 84b7cb31a62edee3ceae702ce52be68cbe222f8a
Author: Uwe Rathmann <Uwe.Rathmann@tigertal.de>
Date:   Tue Dec 19 12:30:23 2023 +0100

    wip

commit 07c4b93e0611298e5e3981017c988fc7e45b6977
Author: Uwe Rathmann <Uwe.Rathmann@tigertal.de>
Date:   Tue Dec 19 12:21:55 2023 +0100

    wip

commit 019448f5e1ea6eed7b767f09ae7fdb0802928a98
Author: Uwe Rathmann <Uwe.Rathmann@tigertal.de>
Date:   Tue Dec 19 12:01:01 2023 +0100

    wip

commit b79f5cba8abc50bd487f08480a62d5c8bcc3c148
Author: Uwe Rathmann <Uwe.Rathmann@tigertal.de>
Date:   Tue Dec 19 11:50:55 2023 +0100

    wip

commit 942291edb6016f29fb2f5c786b84fb7defa10ae2
Author: Uwe Rathmann <Uwe.Rathmann@tigertal.de>
Date:   Tue Dec 19 11:23:28 2023 +0100

    wip

commit 5ae203a03a8413416f723155bf364190937929da
Author: Uwe Rathmann <Uwe.Rathmann@tigertal.de>
Date:   Tue Dec 19 11:23:16 2023 +0100

    wip

commit b5b4453be94c9bdc6655370c949b096061ad1c3a
Author: Uwe Rathmann <Uwe.Rathmann@tigertal.de>
Date:   Tue Dec 19 11:04:15 2023 +0100

    wip

commit cd519b840c6436bdec74a6a92cc5ba69a3f162de
Author: Uwe Rathmann <Uwe.Rathmann@tigertal.de>
Date:   Tue Dec 19 10:50:13 2023 +0100

    wip

commit 9daed04a2c1dde10340764b6ea7769598edeff3d
Author: Uwe Rathmann <Uwe.Rathmann@tigertal.de>
Date:   Tue Dec 19 09:46:10 2023 +0100

    wip

commit c6190b84dde26b4e2790f8154ed3d81db4630b3b
Author: Uwe Rathmann <Uwe.Rathmann@tigertal.de>
Date:   Tue Dec 19 09:34:28 2023 +0100

    wip

commit 837b14e8f688a29aa3294eaaa0c0dbfe66f95dce
Author: Uwe Rathmann <Uwe.Rathmann@tigertal.de>
Date:   Tue Dec 19 09:23:01 2023 +0100

    wip

commit 6486c343a8cfa2a56370f20374939180b576ce2a
Author: Uwe Rathmann <Uwe.Rathmann@tigertal.de>
Date:   Tue Dec 19 08:41:40 2023 +0100

    wip

commit 230aca347b97c0a1bdb75fad6d52153688941aa6
Author: Uwe Rathmann <Uwe.Rathmann@tigertal.de>
Date:   Tue Dec 19 08:37:56 2023 +0100

    wip

commit ec4018de7e8d1940a2e693e9e8183413e02f06c2
Author: Uwe Rathmann <Uwe.Rathmann@tigertal.de>
Date:   Tue Dec 19 08:33:22 2023 +0100

    wip

commit bc3480a01f34d2e92b2445f5e73c0f12262f63a0
Author: Uwe Rathmann <Uwe.Rathmann@tigertal.de>
Date:   Tue Dec 19 08:30:41 2023 +0100

    wip

commit dd896518938f7828f3bc5b5275fccb90d34b08a3
Author: Uwe Rathmann <Uwe.Rathmann@tigertal.de>
Date:   Tue Dec 19 07:50:13 2023 +0100

    wip

commit c534c54ff8af674a45669bc4b688f3a28448a055
Author: Uwe Rathmann <Uwe.Rathmann@tigertal.de>
Date:   Tue Dec 19 07:07:19 2023 +0100

    wip

commit bd7af3f28e8a1a79590acb9be41e0ac9046f1fbc
Author: Uwe Rathmann <Uwe.Rathmann@tigertal.de>
Date:   Mon Dec 18 17:50:34 2023 +0100

    wip

commit 639926d3beccdc49aa98db5fe53f5eb70694a763
Author: Uwe Rathmann <Uwe.Rathmann@tigertal.de>
Date:   Mon Dec 18 17:48:16 2023 +0100

    wip

commit b74c790aa15a23cf3d5875f6280407170d2113bb
Author: Uwe Rathmann <Uwe.Rathmann@tigertal.de>
Date:   Mon Dec 18 17:35:51 2023 +0100

    wip

commit 1403da5a05c5782567b8e34e9a6672e041b483ed
Author: Uwe Rathmann <Uwe.Rathmann@tigertal.de>
Date:   Mon Dec 18 16:52:45 2023 +0100

    wip

commit 74d69d44fc8876d95d25c1e5ab96dcf416f93a0e
Author: Uwe Rathmann <Uwe.Rathmann@tigertal.de>
Date:   Mon Dec 18 16:04:22 2023 +0100

    wip

commit 81269cab9a4a2f07b86442c0b5524b0364909124
Author: Uwe Rathmann <Uwe.Rathmann@tigertal.de>
Date:   Mon Dec 18 15:50:08 2023 +0100

    wip

commit a4f0b8c98960155ee8174e0b5253affc73881158
Author: Uwe Rathmann <Uwe.Rathmann@tigertal.de>
Date:   Mon Dec 18 15:49:54 2023 +0100

    wip

commit fc9c5f032671d9b2b8798c97e3803ef8cb98e647
Author: Uwe Rathmann <Uwe.Rathmann@tigertal.de>
Date:   Mon Dec 18 15:39:34 2023 +0100

    wip

commit 2ca8789fed5ee98355662933fed04e8ed9b5e164
Author: Uwe Rathmann <Uwe.Rathmann@tigertal.de>
Date:   Mon Dec 18 15:28:53 2023 +0100

    wip

commit 3a325b6dab6ee558d6d0407c4e7c639575da4f6d
Author: Uwe Rathmann <Uwe.Rathmann@tigertal.de>
Date:   Mon Dec 18 15:24:42 2023 +0100

    wip

commit 102f872db8a158274de674230f23573f941bed23
Author: Uwe Rathmann <Uwe.Rathmann@tigertal.de>
Date:   Mon Dec 18 15:22:26 2023 +0100

    wip

commit 829eb67b0e6351e77f702acab90705f3cb3e9b4a
Author: Uwe Rathmann <Uwe.Rathmann@tigertal.de>
Date:   Mon Dec 18 14:39:31 2023 +0100

    wip

commit 5f89fc9257fdbd169c5f80d6776aa707848dd5c3
Author: Uwe Rathmann <Uwe.Rathmann@tigertal.de>
Date:   Mon Dec 18 14:18:18 2023 +0100

    wip

commit 4b9e2964c3cc3d4b08e55e98ea5b7b06b169b5f2
Author: Uwe Rathmann <Uwe.Rathmann@tigertal.de>
Date:   Mon Dec 18 13:21:48 2023 +0100

    wip

commit 8c94d26ed98d906a010401d7357e45249d9b11e8
Author: Uwe Rathmann <Uwe.Rathmann@tigertal.de>
Date:   Mon Dec 18 12:42:51 2023 +0100

    wip

commit 096180f6034f93725ebc9d97b8934dcca6e4b41d
Author: Uwe Rathmann <Uwe.Rathmann@tigertal.de>
Date:   Mon Dec 18 12:15:04 2023 +0100

    wip

commit f9f794a19e9b9d6455793a6c61c26e5e1d0e12e0
Author: Uwe Rathmann <Uwe.Rathmann@tigertal.de>
Date:   Mon Dec 18 11:34:07 2023 +0100

    wip

commit 8b5a8c859503b3b155737b975fb344b2dc87bf94
Author: Uwe Rathmann <Uwe.Rathmann@tigertal.de>
Date:   Mon Dec 18 11:32:03 2023 +0100

    wip

commit 67f78561f3bae7c4a779d75921cfabbebf802f9b
Author: Uwe Rathmann <Uwe.Rathmann@tigertal.de>
Date:   Mon Dec 18 11:29:32 2023 +0100

    wip

commit ad6515a95ea6803698f76c221c10f4160e82a668
Author: Uwe Rathmann <Uwe.Rathmann@tigertal.de>
Date:   Mon Dec 18 11:19:28 2023 +0100

    wip

commit 2e719e809f29f07dc38ae2f3213e10bbb730c968
Author: Uwe Rathmann <Uwe.Rathmann@tigertal.de>
Date:   Mon Dec 18 11:16:43 2023 +0100

    wip

commit 2212e09f165130e1621df564aa37bdbefe7377db
Author: Uwe Rathmann <Uwe.Rathmann@tigertal.de>
Date:   Mon Dec 18 11:16:00 2023 +0100

    wip

commit 171aae01c802ad10ad268e35da3dcd33fc6c2b6c
Author: Uwe Rathmann <Uwe.Rathmann@tigertal.de>
Date:   Mon Dec 18 10:52:06 2023 +0100

    wip

commit ab117a43f0a405f4c09f1c395ab215bbcb09a57e
Author: Uwe Rathmann <Uwe.Rathmann@tigertal.de>
Date:   Mon Dec 18 10:47:41 2023 +0100

    wip
2023-12-19 12:45:40 +01: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 QskFocusIndicator::duration introduced 2023-12-02 12:48:20 +01:00
inputcontext BSD-3-Clause license 2023-04-06 09:23:37 +02:00
playground Squashed commit of the following: 2023-12-19 12:45:40 +01:00
qmlexport qml support for QskGraduationMetrics added 2023-11-28 15:47:33 +01:00
skins QskFocusIndicator using enabled/disabled isntead of Exposed/Concealed 2023-12-02 12:05:44 +01:00
src Squashed commit of the following: 2023-12-19 12:45:40 +01: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.