2021-12-06 19:00:26 +01:00
|
|
|
# QSkinny
|
2017-07-21 18:21:34 +02:00
|
|
|
|
2022-04-13 07:23:36 +02:00
|
|
|
![](https://github.com/uwerat/qskinny/workflows/CI/badge.svg)
|
|
|
|
|
2023-04-05 17:47:15 +02:00
|
|
|
[![CMake Build Matrix](https://github.com/vrcomputing/qskinny/actions/workflows/cmake.yml/badge.svg)](https://github.com/vrcomputing/qskinny/actions/workflows/cmake.yml)
|
|
|
|
|
2017-07-30 14:31:28 +02:00
|
|
|
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.
|
2017-07-22 18:17:53 +02:00
|
|
|
|
|
|
|
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.
|
2017-07-22 18:29:06 +02:00
|
|
|
Offering a full featured C++ API allows the application code to benefit
|
|
|
|
from following the same strategies.
|
2017-07-22 18:17:53 +02:00
|
|
|
|
|
|
|
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.
|
|
|
|
|
2018-09-29 18:44:54 +02:00
|
|
|
The code already provides a solid fundament for an automotive GUI with
|
2019-03-17 16:53:32 +01:00
|
|
|
currently ~300K lines of pure C++ code. As expected it results
|
2018-09-29 18:44:54 +02:00
|
|
|
in a good startup performance and a low memory footprint.
|
2017-07-22 18:17:53 +02:00
|
|
|
|
2018-09-29 18:44:54 +02:00
|
|
|
Nontheless QSkinny is lacking in areas like documentation or appealing
|
|
|
|
default skins. The QML API has not been completed after reaching a
|
2018-09-29 18:48:55 +02:00
|
|
|
proof of concept state. Furthermore the current selection of the implemented
|
2018-09-29 18:44:54 +02:00
|
|
|
controls is limited to the needs of the driving projects.
|
2018-09-29 18:29:51 +02:00
|
|
|
|
2018-09-29 18:44:54 +02:00
|
|
|
QSkinny is supposed to run on all platforms being supported by Qt/Quick.
|
|
|
|
But so far only Linux is actively tested.
|
2022-12-05 07:51:41 +01:00
|
|
|
It might support all versions Qt >= 5.15, but you can rely on:
|
2018-09-29 18:29:51 +02:00
|
|
|
|
2022-03-08 11:53:46 +01:00
|
|
|
- Qt 5.15
|
2018-09-29 18:48:55 +02:00
|
|
|
- current long term supported ( LTS ) version of Qt
|
2018-09-29 18:44:54 +02:00
|
|
|
- current version of Qt
|
2018-09-29 18:29:51 +02:00
|
|
|
|
2021-11-22 15:51:05 +01:00
|
|
|
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`.
|
|
|
|
|
2023-04-05 17:47:15 +02:00
|
|
|
> 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`
|
|
|
|
|
2018-09-29 18:44:54 +02:00
|
|
|
If you want to know more about QSkinny - or even like to give it a specific
|
|
|
|
direction - please contact support@qskinny.org.
|
2017-07-26 04:18:01 -07:00
|
|
|
|
2021-06-04 12:05:46 +02:00
|
|
|
![IOT dashboard](/doc/images/iotdashboard.png)
|
2021-12-06 19:00:26 +01:00
|
|
|
|
|
|
|
|
|
|
|
# Contributing to QSkinny
|
|
|
|
|
|
|
|
For now QSkinny is licensed under LGPL v2.1. In the future, We want to have the
|
|
|
|
possibility to transfer the QSkinny code to a **more permissive license**, i.e.
|
|
|
|
any of the following or similar licenses: BSD "Simplified" License, BSD
|
|
|
|
"Revised" License or MIT license.
|
|
|
|
|
|
|
|
If you are fine with these terms, you are welcome to contribute to QSkinny by
|
|
|
|
completing the following steps:
|
|
|
|
|
2021-12-17 15:06:41 +01:00
|
|
|
1. Agree to the terms of the [Contributor Agreement](https://gist.github.com/uwerat/76b2f3df5e246cc468231f55f1d35e47#file-qskinny-cla-md).
|
2021-12-06 19:00:26 +01:00
|
|
|
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.
|
|
|
|
1. Submit your pull request for review.
|