Warning, /maui/mauikit/Mainpage.dox is written in an unsupported language. File is not indexed.
0001 /* 0002 * This file is part of MauiKit 0003 * SPDX-FileCopyrightText: 2016 Marco Martin <mart@kde.org> 0004 * SPDX-FileCopyrightText: 2023 Camilo Higuita <milo.h@aol.com> 0005 * 0006 * SPDX-License-Identifier: LGPL-2.0-or-later 0007 */ 0008 0009 0010 /** @mainpage mauikit 0011 0012 0013 @subsection overview Introduction 0014 MauiKit is a set of <a href="https://doc.qt.io/qt-6/qtquick-index.html">QtQuick</a> components for building adaptable UIs based on <a href="https://doc.qt.io/qt-6/qtquickcontrols-index.html">QtQuick Controls 2</a>. 0015 0016 Its goal is to enable creation of convergent applications that look and feel great on mobile as well as on desktop devices and follow the <a href="https://develop.kde.org/hig">Maui Human Interface Guidelines</a> while being easy to use. 0017 0018 MauiKit works on a variety of platforms, such as <a href="https://plasma-mobile.org/">Plasma Mobile</a>, Desktop Linux and Android. 0019 0020 @image html maui_apps.png "Maui Apps - Index, Station & Vvave" 0021 0022 @subsection tutorial Tutorial 0023 A tutorial for getting started on creating a MauiKit application is available on <a href="https://develop.kde.org/docs/getting-started/mauikit/">our developer platform</a>. 0024 0025 It is possible to make short mockups using QtQuick and MauiKit Controls and briefly test individual QML files using the <a href="https://doc.qt.io/qt-6/qtquick-qml-runtime.html">qml tool</a>. Notice that for it to work correctly you also need to export the enviroment variable `QT_QUICK_CONTROLS_STYLE=QtQuick.Controls.Maui`. This will make sure the Maui style is being used. 0026 0027 A list of additional QML learning resources is available in the <a href="https://community.kde.org/Get_Involved/development/Learn#QtQuick/QML">Community Wiki</a>. If you are not familiar with QML at all, the <a href="https://www.qt.io/product/qt6/qml-book">QML book</a> should be a good head start. 0028 0029 If you have any questions about MauiKit, feel free to drop by the Maui Project group on Telegram as `[at]mauiproject`. 0030 0031 @section component Components 0032 The MauiKit Controls could be divided into a few sections: there are the container views, the browsers, the delegates, and the common elements, such as buttons, cards, etc. 0033 0034 @subsection views Main Views Components 0035 0036 - @link ApplicationWindow ApplicationWindow @endlink 0037 - @link AppViews AppViews @endlink 0038 - @link SideBarView SideBarView @endlink 0039 - @link TabView TabView @endlink 0040 - @link Page Page @endlink 0041 - @link PageLayout PageLayout @endlink 0042 0043 Another views include: 0044 - @link SplitView SplitView @endlink 0045 0046 @subsection browsers Browsing Views 0047 0048 - @link GridBrowser GridBrowser @endlink 0049 - @link ListBrowser ListBrowser @endlink 0050 - @link AltBrowser AltBrowser @endlink 0051 - @link ScrollColumn ScrollColumn @endlink 0052 0053 @subsection delegates Delegates & Templates 0054 0055 - @link ListBrowserDelegate ListBrowserDelegate @endlink 0056 - @link GridBrowserDelegate GridBrowserDelegate @endlink 0057 - @link GalleryRollItem GalleryRollItem @endlink 0058 - @link ListItemTemplate ListItemTemplate @endlink 0059 - @link GridItemTemplate GridItemTemplate @endlink 0060 0061 @subsection common Common Controls 0062 0063 - @link ToolActions ToolActions @endlink 0064 - @link ContextualMenu ContextualMenu @endlink 0065 - @link Holder Holder @endlink 0066 - @link PopupPage PopupPage @endlink 0067 - @link TextFieldPopup TextFieldPopup @endlink 0068 - @link InfoDialog InfoDialog @endlink 0069 - @link MenuItemActionRow MenuItemActionRow @endlink 0070 0071 0072 @subsection example Minimal Example 0073 0074 @code 0075 import QtQuick 0076 import QtQuick.Controls 0077 import org.mauikit.controls as Maui 0078 0079 Maui.ApplicationWindow 0080 { 0081 id: root 0082 0083 Maui.SideBarView 0084 { 0085 anchors.fill: parent 0086 0087 sideBarContent: Maui.Page 0088 { 0089 Maui.Theme.colorSet: Maui.Theme.Window 0090 anchors.fill: parent 0091 0092 headBar.leftContent: Maui.ToolButtonMenu 0093 { 0094 icon.name: "application-menu" 0095 MenuItem 0096 { 0097 text: "About" 0098 icon.name: "info-dialog" 0099 onTriggered: root.about() 0100 } 0101 } 0102 0103 headBar.rightContent: ToolButton 0104 { 0105 icon.name: "love" 0106 } 0107 } 0108 0109 Maui.Page 0110 { 0111 anchors.fill: parent 0112 showCSDControls: true 0113 } 0114 } 0115 } 0116 @endcode 0117 0118 @image html ApplicationWindow/minimal_dark.png "Minimal application setup" 0119 0120 @section deployment Deployment 0121 0122 @subsection building Building 0123 For building MauiKit from source, you will need to be familiar with some basic shell commands, with a terminal emulator and your distribution package manager. 0124 0125 Before building MauiKit, make sure you have all the dependencies already installed with its development files. 0126 0127 `git cmake make kf6-ki18n kf6-kcoreaddons qt6-svg qt6-base mauiman ...` 0128 0129 Then you can clone the project to your machine. 0130 0131 `git clone https://invent.kde.org/maui/mauikit.git` 0132 0133 Now that you have the sources, go into the `mauikit` folder and start the building process. 0134 0135 `cd mauikit` 0136 0137 Let's build the project into a separate directory 0138 0139 `mkdir build` 0140 0141 Then. 0142 0143 `cd build` 0144 0145 An lets build it. 0146 In this example the installation prefix path is set to the `/usr` directory; you can modify it if you want to, but bare in mind that you will also need to let know Qt where else it can find the installed QML plugins. 0147 0148 `cmake .. -DCMAKE_INSTALL_PREFIX=/usr -DBUILD_WITH_QT6=ON` 0149 0150 If everything goes right, the next step is to install it on the system for it to be ready to be used. 0151 0152 To build the demo app, use the build flag `-DBUILD_DEMO=ON` 0153 0154 @subsection installation Installation 0155 0156 Once the project has been built from source - as explained in the previous section, you can install it. 0157 0158 `sudo make install` 0159 0160 This step will install the QML plugin to the right location, the Maui Style and a few other items, such as the CSD styles. 0161 0162 If you don't want to build it from source, you can also look for it in your distribution packages. 0163 0164 For example, to install it on Arch based distributions: 0165 0166 `sudo pacman install mauikit4` 0167 0168 Debian based distros: 0169 0170 `sudo apt install mauikit4` 0171 0172 0173 @subsection android Android 0174 For Android, you will need to build it from source and install it at your Qt-for-Android root directory. 0175 0176 The easiest way is to build it using the Qt Creator IDE. Go to the project settings page, and enable the installation build step for CMake. That will take care of installing MauiKit into the right location. Remember you need to set the Kit to be Android. 0177 You can read more about setting up Qt from Android on their documentation website. 0178 0179 @subsection usage Usage 0180 The simplest and recommended way to use MauiKit is to just use the packages provided by your Linux distribution, or build it as a module and deploy it together with the main application. 0181 0182 Once MauiKit has been installed you can start using it in your QML files by importing it `import org.mauikit.controls`. 0183 Checkout the ApplicationWindow for a quick example. 0184 0185 @subsection examples Examples 0186 A group of examples for all of the QQC2 controls can be found in the source code under the `examples` directory. 0187 0188 @section notes Notes 0189 0190 @subsection contributing Contributing 0191 0192 If you find any syntax errors, missing documentation, or not working code snippets or examples, please consider reporting the issue at 0193 <a href="https://invent.kde.org/maui/mauikit/-/issues">MauiKit</a> issues page, with the **documentation** tag. 0194 0195 If you want to contribute with the documentation efforts, you can contact the Maui Project at Telegram `[at]mauiproject`. 0196 0197 @authors 0198 Camilo Higuita \<milo.h@aol.com.com\><br> 0199 0200 @maintainers 0201 Camilo Higuita \<milo.h@aol.com.com\><br> 0202 0203 @licenses 0204 @lgpl 0205 */ 0206 0207 // DOXYGEN_SET_RECURSIVE = YES 0208 // DOXYGEN_SET_EXCLUDE_PATTERNS += *_p.h */private/* */examples/* */doc/* */styles/* 0209 // DOXYGEN_SET_PROJECT_NAME = MauiKit 0210 // vim:ts=4:sw=4:expandtab:filetype=doxygen