Warning, /frameworks/qqc2-desktop-style/README.md is written in an unsupported language. File is not indexed.

0001 # QQC2 Desktop Style
0002 
0003 This is a style for Qt Quick Controls (also known as QQC2 in Qt5) which uses the application's [QStyle](https://doc.qt.io/qt-6/qstyle.html) to paint the controls in order to give them native look and feel.
0004 
0005 This framework has no public API, applications should not (and cannot) use it directly. Instead, developers should add this framework as a dependency of their desktop apps.
0006 
0007 ## Usage
0008 
0009 The name of the style is `org.kde.desktop`. 
0010 
0011 On Plasma, this style is picked up automatically without the need to set an environment variable as long as both [Breeze](https://invent.kde.org/plasma/breeze) and [Plasma Integration](https://invent.kde.org/plasma/plasma-integration) are installed.
0012 
0013 To support non-Plasma environments like Windows or GNOME, applications will need to define this style in code like [any other QQC style](https://doc.qt.io/qt-6/qtquickcontrols2-styles.html#using-styles-in-qt-quick-controls), e.g.:
0014 
0015 ```c++
0016 #include <QQuickStyle>
0017 
0018 int main(int argc, char *argv[])
0019 {
0020     QApplication app(argc, argv);
0021 
0022     // Default to org.kde.desktop style unless the user forces another style
0023     if (qEnvironmentVariableIsEmpty("QT_QUICK_CONTROLS_STYLE")) {
0024         QQuickStyle::setStyle(QStringLiteral("org.kde.desktop"));
0025     }
0026 
0027     QQmlApplicationEngine engine;
0028     ...
0029 }
0030 ```
0031 
0032 **NOTE: the application must be a QApplication rather than a QGuiApplication instance in order for this style to be used.**
0033 
0034 If the application supports Android, check if  `Q_OS_ANDROID` is defined first:
0035 
0036 ```c++
0037 #ifdef Q_OS_ANDROID
0038     QGuiApplication app(argc, argv);
0039     // Set your preferred Android QQC style here, in this case QQC2 Breeze Style
0040     QQuickStyle::setStyle(QStringLiteral("org.kde.breeze"));
0041 #else
0042     QApplication app(argc, argv);
0043     if (qEnvironmentVariableIsEmpty("QT_QUICK_CONTROLS_STYLE")) {
0044         QQuickStyle::setStyle(QStringLiteral("org.kde.desktop"));
0045     }
0046 #endif
0047 ```
0048 
0049 ## Differences from QQC2 Breeze Style
0050 
0051 QQC2 Desktop Style should be used in desktop applications thanks to its native QStyling, making it look and feel like a QtWidgets application. However it has a noticeable performance impact on mobile systems like Plasma Mobile and Android. It's also desirable to avoid using QtWidgets on those platforms too. 
0052 
0053 It's recommended to use [QQC2 Breeze Style](https://invent.kde.org/plasma/qqc2-breeze-style) as shown above for those platforms. It replicates the Breeze visual design without depending on QStyle. 
0054 
0055 ## Building
0056 
0057 The easiest way to make changes and test QQC2 Desktop Style during development is to [build it with kdesrc-build](https://community.kde.org/Get_Involved/development/Build_software_with_kdesrc-build).
0058 
0059 ## Contributing
0060 
0061 Like other projects in the KDE ecosystem, contributions are welcome from all. This repository is managed in [KDE Invent](https://invent.kde.org/frameworks/qqc2-desktop-style), our GitLab instance.
0062 
0063 * Want to contribute code? See the [GitLab wiki page](https://community.kde.org/Infrastructure/GitLab) for a tutorial on how to send a merge request.
0064 * Reporting a bug? Please submit it on the [KDE Bugtracking System](https://bugs.kde.org/enter_bug.cgi?format=guided&product=frameworks-qqc2-desktop-style). Please do not use the Issues tab to report bugs.
0065 
0066 If you get stuck or need help with anything at all, head over to the [KDE New Contributors room](https://go.kde.org/matrix/#/#kde-welcome:kde.org) on Matrix. For questions about QQC2 Desktop Style, please ask in the [KDE Development room](https://go.kde.org/matrix/#/#kde-devel:kde.org). See [Matrix](https://community.kde.org/Matrix) for more details.
0067