• Stars
    star
    786
  • Rank 57,890 (Top 2 %)
  • Language
    Python
  • License
    MIT License
  • Created over 9 years ago
  • Updated 5 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Iconic fonts in PyQt and PySide applications

QtAwesome

license pypi version conda version download count OpenCollective Backers Join the chat at https://gitter.im/spyder-ide/public
PyPI status Github Windows build status Github Linux build status Github MacOS build status Documentation Status codecov

Copyright © 2015- Spyder Project Contributors

Description

QtAwesome enables iconic fonts such as Font Awesome and Elusive Icons in PyQt and PySide applications.

It started as a Python port of the QtAwesome C++ library by Rick Blommers.

Installation

Using conda:

conda install qtawesome

or using pip (only if you don't have conda installed):

pip install qtawesome

Usage

Supported Fonts

QtAwesome identifies icons by their prefix and their icon name, separated by a period (.) character.

The following prefixes are currently available to use:

Examples

import qtawesome as qta
  • Use Font Awesome, Elusive Icons, Material Design Icons, Phosphor, Remix Icon or Microsoft's Codicons.
# Get FontAwesome 5.x icons by name in various styles:
fa5_icon = qta.icon('fa5.flag')
fa5_button = QtWidgets.QPushButton(fa5_icon, 'Font Awesome! (regular)')
fa5s_icon = qta.icon('fa5s.flag')
fa5s_button = QtWidgets.QPushButton(fa5s_icon, 'Font Awesome! (solid)')
fa5b_icon = qta.icon('fa5b.github')
fa5b_button = QtWidgets.QPushButton(fa5b_icon, 'Font Awesome! (brands)')

# or Elusive Icons:
asl_icon = qta.icon('ei.asl')
elusive_button = QtWidgets.QPushButton(asl_icon, 'Elusive Icons!')

# or Material Design Icons:
apn_icon = qta.icon('mdi6.access-point-network')
mdi6_button = QtWidgets.QPushButton(apn_icon, 'Material Design Icons!')

# or Phosphor:
mic_icon = qta.icon('ph.microphone-fill')
ph_button = QtWidgets.QPushButton(mic_icon, 'Phosphor!')

# or Remix Icon:
truck_icon = qta.icon('ri.truck-fill')
ri_button = QtWidgets.QPushButton(truck_icon, 'Remix Icon!')

# or Microsoft's Codicons:
squirrel_icon = qta.icon('msc.squirrel')
msc_button = QtWidgets.QPushButton(squirrel_icon, 'Codicons!')
  • Apply some styling
# Styling icons
styling_icon = qta.icon('fa5s.music',
                        active='fa5s.balance-scale',
                        color='blue',
                        color_active='orange')
music_button = QtWidgets.QPushButton(styling_icon, 'Styling')
  • Set alpha in colors
# Setting an alpha of 120 to the color of this icon. Alpha must be a number
# between 0 and 255.
icon_with_alpha = qta.icon('mdi.heart',
                           color=('red', 120))
heart_button = QtWidgets.QPushButton(icon_with_alpha, 'Setting alpha')
  • Stack multiple icons
# Stacking icons
camera_ban = qta.icon('fa5s.camera', 'fa5s.ban',
                      options=[{'scale_factor': 0.5,
                                'active': 'fa5s.balance-scale'},
                               {'color': 'red'}])
stack_button = QtWidgets.QPushButton(camera_ban, 'Stack')
stack_button.setIconSize(QtCore.QSize(32, 32))
  • Define the way to draw icons (text- default for icons without animation, path - default for icons with animations, glyphrun and image)
# Icon drawn with the `image` option
drawn_image_icon = qta.icon('ri.truck-fill',
                            options=[{'draw': 'image'}])
drawn_image_button = QtWidgets.QPushButton(drawn_image_icon,
                                           'Icon drawn as an image')
  • Animations
# Spining icons
spin_button = QtWidgets.QPushButton(' Spinning icon')
spin_icon = qta.icon('fa5s.spinner', color='red',
                     animation=qta.Spin(spin_button))
spin_button.setIcon(spin_icon)
  • Display Icon as a widget
# Spining icon widget
spin_widget = qta.IconWidget()
spin_icon = qta.icon('mdi.loading', color='red',
                     animation=qta.Spin(spin_widget))
spin_widget.setIcon(spin_icon)

# Simple icon widget
simple_widget = qta.IconWidget('mdi.web', color='blue')
  • Screenshot

QtAwesome screenshot

To check these options you can launch the example.py script and pass to it the options as arguments. For example, to test how the icons could look using the glyphrun draw option, you can run something like:

python example.py draw=glyphrun

Other features

  • QtAwesome comes bundled with Font Awesome, Elusive Icons, Material Design Icons, Phosphor, Remix Icon and Microsoft's Codicons but it can also be used with other iconic fonts. The load_font function allows to load other fonts dynamically.
  • QtAwesome relies on the QtPy project as a compatibility layer on the top ot PyQt or PySide.

Icon Browser

QtAwesome ships with a browser that displays all the available icons. You can use this to search for an icon that suits your requirements and then copy the name that should be used to create that icon!

Once installed, run qta-browser from a shell to start the browser.

QtAwesomeIconbrowser

License

MIT License. Copyright 2015 - The Spyder development team. See the LICENSE file for details.

The Font Awesome and Elusive Icons fonts are licensed under the SIL Open Font License.

The Phosphor font is licensed under the MIT License.

The Material Design Icons font is licensed under the Apache License Version 2.0.

The Remix Icon font is licensed under the Apache License Version 2.0.

Microsoft's Codicons are licensed under a Creative Commons Attribution 4.0 International Public License.

Sponsors

Spyder and its subprojects are funded thanks to the generous support of

QuansightNumfocus

and the donations we have received from our users around the world through Open Collective:

Sponsors

More Repositories

1

spyder

Official repository for Spyder - The Scientific Python Development Environment
Python
8,261
star
2

qtpy

Provides an uniform layer to support PyQt5, PySide2, PyQt6, PySide6 with a single codebase
Python
963
star
3

spyder-notebook

Jupyter notebook integration with Spyder
Python
520
star
4

spyder-terminal

Run system terminals inside Spyder. Works on Linux, macOS and Windows.
Python
228
star
5

qtsass

Compile SASS files to Qt stylesheets
Python
130
star
6

spyder-vim

A plugin for Spyder to enable Vim keybindings
Python
125
star
7

spyder-unittest

A plugin for Spyder to run tests and view the results
Python
79
star
8

spyder-reports

Spyder plugin to render Markdown reports using Pweave as a backend
Python
70
star
9

loghub

Changelog generator based on github milestones or tags.
Python
41
star
10

spyder-kernels

Jupyter Kernels for the Spyder console
Python
38
star
11

spyder-autopep8

A plugin to run the autopep8 python linter from within the spyder editor.
Python
35
star
12

spyder-docs

Documentation for Spyder, the Scientific Python Development Environment
Python
33
star
13

spyder-line-profiler

This is a plugin to run the python line profiler from within the spyder editor.
Python
33
star
14

docrepr

Generate rich representations for docstrings
Python
26
star
15

website-spyder

Spyder IDE website sources. Built with Lektor.
JavaScript
23
star
16

conda-manager

Graphical conda package manager
Python
22
star
17

spyder-memory-profiler

This is a plugin to run the python memory_profiler from within the spyder editor.
Python
12
star
18

pysyntect

Python bindings for Syntect library
Rust
9
star
19

lektor-icon

A modern, single-page-focused theme for the Lektor static CMS
CSS
8
star
20

binder-environments

Binder environments to test pull requests in our organization
Python
8
star
21

spyder-vcs

Python
8
star
22

spyder-plugin-cookiecutter

Cookiecutter template for a Spyder IDE plugin (compatible with Spyder IDE versions 3.x and 4.x)
Python
7
star
23

mac-application

Instructions to build the native Spyder MacOS X application
Shell
7
star
24

three-merge

Simple Python library to perform a 3-way merge between strings
Python
7
star
25

langchain-provider

Completion provider using Langchain and OpenAI for Spyder 6+
Python
5
star
26

website-production

Spyder IDE deployed website.
HTML
5
star
27

Spyder-Workshop

Spyder Workshop
Python
5
star
28

plugin-examples

Plugin examples for the new Spyder 5 API
Python
5
star
29

gettext-helpers

Helper functions and scripts for gettext translation in Python
Python
4
star
30

envs-manager

A manager for Python environments and packages managers
Python
4
star
31

ux-improvements

Discussion about UX improvements for Spyder 5 and beyond
4
star
32

community

Community repository for Spyder IDE
3
star
33

governance-and-guidelines

Governance documents and formal guidelines for the Spyder project as a whole
3
star
34

spyder-remote-services

Python
3
star
35

spyder-website

The new Spyder website, built with Svelte
Svelte
2
star
36

spyder-env-manager

A plugin for Spyder 6+ to manage Python virtual environments and packages
Python
2
star
37

action-close-duplicate-issues

Github action to close duplicate issues with a custom message
TypeScript
1
star
38

spyder5-plugin-cookiecutter

Cookiecutter for a Spyder 5 plugin
Python
1
star