Skip to main content

FontAwesome icons in PyQt and PySide applications

Project description

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 6.x icons by name in various styles:
fa6_icon = qta.icon('fa6.flag')
fa6_button = QtWidgets.QPushButton(fa6_icon, 'Font Awesome 6! (regular)')
fa6s_icon = qta.icon('fa6s.flag')
fa6s_button = QtWidgets.QPushButton(fa6s_icon, 'Font Awesome 6! (solid)')
fa6b_icon = qta.icon('fa6b.github')
fa6b_button = QtWidgets.QPushButton(fa6b_icon, 'Font Awesome 6! (brands)')

# or FontAwesome 5.x icons by name in various styles:
fa5_icon = qta.icon('fa5.flag')
fa5_button = QtWidgets.QPushButton(fa5_icon, 'Font Awesome 5! (regular)')
fa5s_icon = qta.icon('fa5s.flag')
fa5s_button = QtWidgets.QPushButton(fa5s_icon, 'Font Awesome 5! (solid)')
fa5b_icon = qta.icon('fa5b.github')
fa5b_button = QtWidgets.QPushButton(fa5b_icon, 'Font Awesome 5! (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')
animation = qta.Spin(spin_button)
spin_icon = qta.icon('fa5s.spinner', color='red', animation=animation)
spin_button.setIcon(spin_icon)

# Stop the animation when needed
animation.stop()
  • Display Icon as a widget
# Spining icon widget
spin_widget = qta.IconWidget()
animation = qta.Spin(spin_widget, autostart=False)
spin_icon = qta.icon('mdi.loading', color='red', animation=animation)
spin_widget.setIcon(spin_icon)

# Simple icon widget
simple_widget = qta.IconWidget('mdi.web', color='blue', 
                               size=QtCore.QSize(16, 16))

# Start and stop the animation when needed
animation.start()
animation.stop()
  • 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.

qta-browser

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

qtawesome-1.4.1.tar.gz (2.6 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

qtawesome-1.4.1-py3-none-any.whl (2.6 MB view details)

Uploaded Python 3

File details

Details for the file qtawesome-1.4.1.tar.gz.

File metadata

  • Download URL: qtawesome-1.4.1.tar.gz
  • Upload date:
  • Size: 2.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.20

File hashes

Hashes for qtawesome-1.4.1.tar.gz
Algorithm Hash digest
SHA256 d6c5aa545b614fc562769e9eeadf18530e08b8eebe28af4ab5d38131194c9c7b
MD5 bad6fd0ee7d0f484277536231c555637
BLAKE2b-256 96b87bd7527025a6f485e8f40b9f85b813ca3420ba940a91ac41bd1eb5904cda

See more details on using hashes here.

File details

Details for the file qtawesome-1.4.1-py3-none-any.whl.

File metadata

  • Download URL: qtawesome-1.4.1-py3-none-any.whl
  • Upload date:
  • Size: 2.6 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.20

File hashes

Hashes for qtawesome-1.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 6a45f0ec214e0cd7c9c867772ec596799dcd5fae00a4b17717ff0d95d2e3fb64
MD5 fff18f8d430ebf61fdd85f0513917cf8
BLAKE2b-256 11efb7c8c38d1717e2fcb777678ed11568b31062e34550e23297cc32e9e1105e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page