Skip to content

fxicons

This module provides functionality for handling icons.

add_library

add_library(
    library: str, pattern: str, defaults: Dict, root: Optional[Path] = None
)

Add a new icon library to the available libraries.

Parameters:

Name Type Description Default
library str

The name of the library.

required
pattern str

The pattern to use for the library. Valid placeholders are: - {root}: The root path for the library. - {library}: The name of the library. - {style}: The style of the icon. - {icon_name}: The name of the icon. - {extension}: The extension of the icon.

required
defaults Dict

The default values for the library.

required
root Optional[Path]

The root path for the library. Defaults to fxconstants.ICONS_ROOT.

None

Examples:

>>> add_library(
...    library="houdini",
...    pattern="{root}/{library}/{style}/{icon_name}.{extension}",
...    defaults={
...        "extension": "svg",
...        "style": "CROWDS",
...        "color": None,
...        "width": 48,
...        "height": 48,
...    },
...    root=str(Path.home() / "Pictures" / "Icons"),
... )

change_pixmap_color

change_pixmap_color(pixmap: QPixmap, color: str) -> QPixmap

Change the color of a pixmap.

Parameters:

Name Type Description Default
pixmap QPixmap

The pixmap to change the color of.

required
color str

The color to apply.

required

Returns:

Name Type Description
QPixmap QPixmap

The pixmap with the new color applied.

convert_icon_to_pixmap

convert_icon_to_pixmap(
    icon: QIcon, desired_size: Optional[QSize] = None
) -> Optional[QPixmap]

Converts a QIcon to a QPixmap.

Parameters:

Name Type Description Default
icon QIcon

The QIcon to convert.

required
desired_size Optional[QSize]

The desired size for the pixmap (QSize). If None, the default size is 48x48.

None

Returns:

Type Description
Optional[QPixmap]

A QPixmap or None if no suitable pixmap is available.

Examples:

Let the size be decided

>>> icon = hou.qt.Icon("MISC_python")
>>> pixmap = convert_icon_to_pixmap(icon)

Choose a size

>>> icon = hou.qt.Icon("MISC_python")
>>> pixmap = convert_icon_to_pixmap(icon, QSize(48, 48))

get_available_icons_in_library

get_available_icons_in_library(library: str) -> List[str]

Get all available icon names in the specified library.

Parameters:

Name Type Description Default
library str

The name of the library.

required

Returns:

Type Description
List[str]

List[str]: The available icon names in the library.

Raises:

Type Description
ValueError

If the library does not exist.

FileNotFoundError

If no icons are found in the library.

Examples:

>>> print(get_available_icons_in_library("dcc"))
["3d_equalizer", "adobe_photoshop", "blender", "hiero"]

get_available_libraries

get_available_libraries() -> List[str]

Get all available icon libraries.

Returns:

Type Description
List[str]

List[str]: The available icon libraries.

Examples:

>>> print(get_available_libraries())
["beacon", "dcc", "material", "fontawesome"]

get_icon cached

get_icon(
    icon_name: str,
    width: Optional[int] = None,
    height: Optional[int] = None,
    color: Optional[str] = None,
    library: Optional[str] = None,
    style: Optional[str] = None,
    extension: Optional[str] = None,
) -> QIcon

Get a QIcon of the specified icon.

Parameters:

Name Type Description Default
icon_name str

The name of the icon.

required
width Optional[int]

The width of the pixmap. Defaults to None.

None
height Optional[int]

The height of the pixmap. Defaults to None.

None
color Optional[str]

The color to convert the pixmap to. Defaults to None.

None
library Optional[str]

The library of the icon. Defaults to None.

None
style Optional[str]

The style of the icon. Defaults to None.

None
extension Optional[str]

The extension of the icon. Defaults to None.

None

Returns:

Name Type Description
QIcon QIcon

The QIcon of the icon.

Examples:

>>> get_icon("add", color="red")
>>> get_icon("lemon", library="fontawesome")

get_icon_path

get_icon_path(
    icon_name: str,
    library: Optional[str] = None,
    style: Optional[str] = None,
    extension: Optional[str] = None,
) -> str

Get the path of the specified icon.

Parameters:

Name Type Description Default
icon_name str

The name of the icon.

required
library Optional[str]

The library of the icon. Defaults to None.

None
style Optional[str]

The style of the icon. Defaults to None.

None
extension Optional[str]

The extension of the icon. Defaults to None.

None

Raises:

Type Description
FileNotFoundError

If verify is True and the icon does not exist.

Returns:

Name Type Description
str str

The path of the icon.

Examples:

>>> get_icon_path("add")
>>> get_icon_path("lemon", library="fontawesome")

get_pixmap cached

get_pixmap(
    icon_name: str,
    width: Optional[int] = None,
    height: Optional[int] = None,
    color: Optional[str] = None,
    library: Optional[str] = None,
    style: Optional[str] = None,
    extension: Optional[str] = None,
) -> QPixmap

Get a QPixmap of the specified icon.

Parameters:

Name Type Description Default
icon_name str

The name of the icon.

required
width Optional[int]

The width of the pixmap. Defaults to None.

None
height Optional[int]

The height of the pixmap. Defaults to None.

None
color Optional[str]

The color to convert the pixmap to. Defaults to None.

None
library Optional[str]

The library of the icon. Defaults to None.

None
style Optional[str]

The style of the icon. Defaults to None.

None
extension Optional[str]

The extension of the icon. Defaults to None.

None

Returns:

Name Type Description
QPixmap QPixmap

The QPixmap of the icon.

Examples:

>>> get_pixmap("add", color="red")
>>> get_pixmap("lemon", library="fontawesome")

has_transparency

has_transparency(mask: QBitmap) -> bool

Check if a mask has any transparency.

Parameters:

Name Type Description Default
mask QBitmap

The mask to check.

required

Returns:

Name Type Description
bool bool

True if the mask has transparency, False otherwise.

set_default_icon_library

set_default_icon_library(library: str)

Set the default icon library.

Parameters:

Name Type Description Default
library str

The name of the library to set as default.

required

Raises:

Type Description
ValueError

If the library does not exist.

Examples:

>>> set_default_icon_library("fontawesome")

set_icon_defaults

set_icon_defaults(apply_to: Optional[str] = None, **kwargs)

Set the default values for the icons.

Parameters:

Name Type Description Default
apply_to Optional[str]

The library to apply the defaults to. If set to None, the defaults will be applied to all libraries. Defaults to None.

None
**kwargs

The default values to set.

{}

Examples:

>>> set_icon_defaults(color="red", width=32, height=32)
>>> set_icon_defaults(apply_to="material", color="blue")

superpose_icons

superpose_icons(*icons: QIcon) -> QIcon

Superpose multiple icons.

Parameters:

Name Type Description Default
*icons QIcon

Icons to superpose. Add the icons in the order you want them to be superposed, from background to foreground.

()

Returns:

Name Type Description
QIcon QIcon

The QIcon of the superposed icons.

Notes

The size of the resulting icon is the size of the first icon.

Examples:

>>> icon_a = get_icon("add")
>>> icon_b = get_icon("lemon", library="fontawesome")
>>> superposed_icon = superpose_icons(icon_a, icon_b)