qskinny/doc/qsk.dox
2023-04-06 09:23:37 +02:00

73 lines
2.6 KiB
Plaintext

/*!
\mainpage Introduction
The (Q)Skinny library contains a set of lightweight Qt Quick Controls.
It is implemented to be 100% usable in C++, but can be used from C++ and/or QML
application code. Being "skinny", the framework is intended to be both lightweight
and skinnable.
The framework 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.
@dot
digraph skinny {
table [ shape=record, label="{
QSkinny: key functionality and classes |
{
{ Controls | <Controls>API, logic and layout of UI } |
{ Rendering | <Rendering>Delegation of rendering commands } |
{ Styling | <Styling>Visual configuration }
}
}"];
QskControl [ URL="\ref QskControl"]
QskLayout [ URL="\ref QskLayout"]
QskSkinlet [ URL="\ref QskSkinlet"]
QskGraphic [ URL="\ref QskGraphic"]
QskSkin [ URL="\ref QskSkin"]
QskSkinnable [ URL="\ref QskSkinnable"]
table:Controls:s -> QskControl
table:Controls:s -> QskLayout
table:Rendering:s -> QskSkinlet
table:Rendering:s -> QskGraphic
table:Styling:s -> QskSkin
table:Styling:s -> QskSkinnable
}
@enddot
Besides establishing a more complete C++ API for Qt Quick application development,
the QSkinny project offers:
- Special attention to resource requirements (i.e. memory consumption and
start-up performance), with a number of \ref qskoptimizations "optimizations"
enabled by default
- A \ref qsklayouts "layout system" comparable to the one available for \ref QWidget "Qt Widgets"
- A way to \ref qskskinning "skin" (theme/style) applications entirely from C++,
including built-in support for CSS-like inheritance and \ref qskanimations "animated transitions"
- Better support for \ref qskvectorgraphics "vector image formats" to aid in
scalable UI creation
Doing the implementation in C++ allows to make use of the \ref qsknodes "scene graph"
classes. Building controls from scene graph nodes allows for a lighter implementation
than found with stacking "heavier" objects like QObject or QQuickItem.
\note The current selection of implemented controls is driven by the needs of specific
projects and therefore may feel a bit random. Conceptually, though, any type of
control fits into QSkinny, as long as it is usable from C++ (as opposed to only
QML).
\section license License
QSkinny is distributed under the terms of the BSD-3-Clause license.
\section platforms Platforms
QSkinny 0.0.1 might be source code compatible in all environments where you find
Qt >= 5.6. Due to its use of private Qt headers, it might be necessary to
recompile QSkinny for different Qt versions.
*/