Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/oclero/qlementine-icons
π Modern icon set for desktop Qt applications.
https://github.com/oclero/qlementine-icons
desktop icons iconset qstyle qt5 ui
Last synced: 3 months ago
JSON representation
π Modern icon set for desktop Qt applications.
- Host: GitHub
- URL: https://github.com/oclero/qlementine-icons
- Owner: oclero
- License: mit
- Created: 2023-06-17T09:00:08.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2024-10-12T18:07:42.000Z (4 months ago)
- Last Synced: 2024-10-13T01:26:09.958Z (4 months ago)
- Topics: desktop, icons, iconset, qstyle, qt5, ui
- Language: C++
- Homepage: https://oclero.github.io/qlementine-icons/
- Size: 1.43 MB
- Stars: 20
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# Qlementine Icons
[![License: MIT](https://img.shields.io/badge/license-MIT-green)](https://mit-license.org/)
[![CMake version](https://img.shields.io/badge/CMake-3.17+-064F8C?logo=cmake)](https://www.qt.io)
[![C++ version](https://img.shields.io/badge/C++-17-00599C?logo=++)](https://www.qt.io)
[![Qt5 version](https://img.shields.io/badge/Qt-5.15.2+-41CD52?logo=qt)](https://www.qt.io)
[![Qt6 version](https://img.shields.io/badge/Qt-6.0.0+-41CD52?logo=qt)](https://www.qt.io)| Branch | Build |
| :------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `master` | [![Linux](https://github.com/oclero/qlementine-icons/actions/workflows/linux.yml/badge.svg?branch=master)](https://github.com/oclero/qlementine-icons/actions/workflows/linux.yml) [![Windows](https://github.com/oclero/qlementine-icons/actions/workflows/windows.yml/badge.svg?branch=master)](https://github.com/oclero/qlementine-icons/actions/workflows/windows.yml) [![MacOS](https://github.com/oclero/qlementine-icons/actions/workflows/macos.yml/badge.svg?branch=master)](https://github.com/oclero/qlementine-icons/actions/workflows/macos.yml) |
| `dev` | [![Linux](https://github.com/oclero/qlementine-icons/actions/workflows/linux.yml/badge.svg?branch=dev)](https://github.com/oclero/qlementine-icons/actions/workflows/linux.yml) [![Windows](https://github.com/oclero/qlementine-icons/actions/workflows/windows.yml/badge.svg?branch=dev)](https://github.com/oclero/qlementine-icons/actions/workflows/windows.yml) [![MacOS](https://github.com/oclero/qlementine-icons/actions/workflows/macos.yml/badge.svg?branch=dev)](https://github.com/oclero/qlementine-icons/actions/workflows/macos.yml) |Vector icon set for modern desktop Qt5/Qt6 applications. Browse the 350+ icons on the [project's website](https://oclero.github.io/qlementine-icons).
> **Need more icons?** Commissions for new icons (free or commercial) are possible. See below.
---
### Table of Contents
- [Features](#features)
- [Usage](#usage)
- [Scripts](#scripts)
- [Website](#website)
- [Author](#author)
- [License](#license)---
## Features
- This repository is an icon set aimed to be used in conjunction with my Qt library named [Qlementine](https://github.com/oclero/qlementine).
- This icon set provides icons as requested by the [Freedesktop standard](http://standards.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html), and vastly expands it, in `16`Γ`16` pixels.
> **Note:** Freedesktop coverage is a work in progress. Follow the progress [here](https://docs.google.com/spreadsheets/d/1lwPe_WPdQkgOCCKtCJghRR6EkeCQXrv96WzCUMdAfRE/edit?usp=sharing).
- The icons are in SVG format, so can be scaled to any size without loosing any quality. However, they've been designed to be used in `16`Γ`16` pixels, to be pixel-perfect.
- The icons are visible on the [project's website](https://oclero.github.io/qlementine-icons). Search among the library, and click on the icon to download the SVG file.
- Commissions are possible if you need some icons. See [License](#license) below for more details.
## Usage
1. Add the library as a dependency with CMake FetchContent.
```bash
include(FetchContent)
FetchContent_Declare(qlementine_icons GIT_REPOSITORY "https://github.com/oclero/qlementine-icons.git")
FetchContent_MakeAvailable(qlementine_icons)
```2. Link with the library in CMake.
```cmake
target_link_libraries(your_project oclero::qlementine_icons)
```3. Initialize the library.
```c++
#includeoclero::qlementine::icons::initializeIconTheme();
```4. Define the **icon theme** on your `QApplication`.
```c++
QIcon::setThemeName("qlementine");
```5. When you want to retrieve an icon, you can use one of these methods:
1. With `QIcon::fromTheme()`, by using the icon name.
```c++
const auto icon = QIcon::fromTheme("action/redo");
const auto pixmap = icon.pixmap(QSize(16, 16));
```2. With `QIcon::fromTheme()`, by using the Freedesktop standard identifier, **if the icon has one**.
```c++
const auto iconName = fromFreeDesktop("edit-redo");
const auto icon = QIcon::fromTheme(iconName);
const auto pixmap = icon.pixmap(QSize(16, 16));
```3. With `QPixmap`. Note that the resulting image will be `16`Γ`16` _physical_ pixels, so not adapted to High-Resolution screens.
```c++
const auto pixmap = QPixmap(":/qlementine/icons/16/action/redo.svg");
```4. With `QIcon`, to get any size, and ensure it will have the correct pixel ratio to be displayed on the scree.
```c++
const auto icon = QIcon(":/qlementine/icons/16/action/redo.svg");
const auto pixmap = icon.pixmap(QSize(64, 64));
```5. You can also get the path from the icon identifier, in the enum `IconId`.
**This is the recommended way because it avoids making typo mistakes**.```c++
const auto icon = QIcon(iconPath(Icons16::Action_Undo));
const auto pixmap = icon.pixmap(QSize(16, 16));
```## Scripts
Some Python scripts are in the `scripts` folder and are useful to manage the huge icon list.
### Updating the project files: `update.py`
```sh
update.py
```This script will update the various files that depend on the icon list:
- **Qt files**
1. The script creates the `.qrc` files based on the folder structure.
2. In `sources/CMakeLists.txt`, cmake uses the `glob` function to get all the `.qrc` files, and will generate the appropriate C++ lines in `sources/src/icons/QlementineIcons.cpp`.- **Hugo files**
- The script keeps up-to-date the `docs/data/icons.yml` metadata file.
- This file is used to generate at compile-time the HTML table.### Optimizing the SVG files: `optimize_svg_files.py`
#### Usage
Put the SVG files you want to optimize in a `tmp` folder, then:
```sh
optimize_svg_files.py
```This script will use the `scour` library to optimize SVG: stripping all unnecessary data and reducing the decimal count.
Please do not run it on already optimized files, because the rounding will change the decimal count, and Git will see a modification.
## Website
The documentation/showcase website is made with `hugo`. You can see a local preview at by executing:
```bash
hugo server --source ./docs
```## Author
**Olivier ClΓ©ro** | [email](mailto:[email protected]) | [website](https://www.olivierclero.com) | [github](https://www.github.com/oclero) | [gitlab](https://www.gitlab.com/oclero)
## License
**Qlementine Icons** is available under the MIT license. See the [LICENSE](LICENSE) file for more info.
If you or your company wants to use Qlementine Icons, but found out some icons are missing, here are some common cases:
1. **Free icons:** If the icons are general-purpose enough, I can made them **for free** and add them to this MIT-licensed icon library. **Please create a Github issue**, describing precisely your needs.
2. **Commercial icons:** If you want icons in this very same style, but don't want to add them to Qlementine Icons, **I can work as a freelance artist for you**, and make these icons. Feel free to contact me by email to talk about details.