> For the complete documentation index, see [llms.txt](https://docs.novaflowos.com/start/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.novaflowos.com/start/kde-developer-platform/readme/features/_index.md).

# Icons

Deliver your application with icons.

When you create your own KDE application you will probably want to have icons in it respecting your user's icon theme.

This is possible with the help of [QIcon::fromTheme](https://doc.qt.io/qt-5/qicon.html#fromTheme) for QtWidgets applications or [Kirigami's Icon](docs:kirigami2;Icon) for QtQuick applications. Both take the name of the icon in the icon theme as an argument.

Plasma and all the other major Linux deskops follow the Freedesktop [icon specification](http://standards.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html) and [naming specification](http://standards.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html). A fallback mechanism is also present so that if the `document-open-recent` icon is not present, the `document-open` icon will be displayed instead, and if the `document-open` icon is also not present the `document` icon will be displayed.

### Finding the right icons

KDE provides an application to search for icons, Cuttlefish. It is generally available in the `plasma-sdk` package available through your package manager on Linux.

![Screenshot of cuttlefish](https://2854466518-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2YSWk59V1RtNco6tGNDq%2Fuploads%2Fgit-blob-ac065b8e0f9fac7d6878cebacfd3ebc9977393d3%2Fcuttlefish.png?alt=media)

Cuttlefish allows you to search for icons by name and by category. You can inspect the different color schemes of an icon as well as view a selected icon in other themes.

### Example

In a traditional QtWidgets application:

```cpp
QIcon undoicon = QIcon::fromTheme("edit-undo");
```

In a QtQuick application:

```qml
import org.kde.kirigami 2.14 as Kirigami

Kirigami.Icon {
    source: "edit-undo"
} 
```

### Other platforms than Linux

On other platforms, the icon theme is not available.

#### Android

On Android, you can use the [kirigami\_package\_breeze\_icons()](https://invent.kde.org/frameworks/kirigami/-/blob/master/KF5Kirigami2Macros.cmake#L5) CMake function to package the Breeze icons you are using.

```cmake
if(ANDROID)
    kirigami_package_breeze_icons(ICONS
        edit-undo
        edit-redo
    )
endif()
```
