Metadata-Version: 2.4
Name: fxgui
Version: 13.5.0
Summary: Custom Python classes and utilities tailored for Qt built UI, in VFX-oriented DCC applications.
Author-email: Valentin Beaumont <valentin.onze@gmail.com>
Maintainer-email: Valentin Beaumont <valentin.onze@gmail.com>
License-Expression: MIT
Project-URL: Homepage, https://github.com/healkeiser/fxgui
Project-URL: Documentation, https://healkeiser.github.io/fxgui
Project-URL: GitHub, https://github.com/healkeiser/fxgui
Project-URL: Changelog, https://github.com/healkeiser/fxgui/blob/main/CHANGELOG.md
Project-URL: Source, https://github.com/healkeiser/fxgui
Project-URL: Funding, https://github.com/sponsors/healkeiser
Keywords: Qt,Qt6,PySide6,PyQt6,VFX,DCC,UI
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Topic :: Software Development :: User Interfaces
Classifier: Environment :: X11 Applications :: Qt
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: QtPy>=2.4.2
Requires-Dist: PyYAML>=6.0
Requires-Dist: Pygments>=2.0
Provides-Extra: zensical
Requires-Dist: zensical; extra == "zensical"
Requires-Dist: mkdocstrings-python; extra == "zensical"
Requires-Dist: black; extra == "zensical"
Provides-Extra: test
Requires-Dist: pytest>=7.0; extra == "test"
Requires-Dist: pytest-qt>=4.2; extra == "test"
Requires-Dist: pytest-randomly>=3.0; extra == "test"
Requires-Dist: PySide6>=6.5; extra == "test"
Dynamic: license-file

<div align="center">

  ![Logo](https://raw.githubusercontent.com/healkeiser/fxgui/main/fxgui/images/fxgui_logo_background_dark.svg#gh-light-mode-only)
  ![Logo](https://raw.githubusercontent.com/healkeiser/fxgui/main/fxgui/images/fxgui_logo_background_light.svg#gh-dark-mode-only)

  <h3 align="center">fxgui</h3>

  <p align="center">
    Custom Python classes and utilities tailored for Qt built UI, in VFX-oriented DCC applications.
    <br/><br/>
    <a href="https://healkeiser.github.io/fxgui"><strong>Documentation</strong></a>
  </p>

  ##

  <p align="center">
    <!-- Maintenance status -->
    <img src="https://img.shields.io/badge/maintenance-actively--developed-brightgreen.svg?&label=Maintenance"> &nbsp;&nbsp;
    <!-- <img src="https://img.shields.io/badge/maintenance-deprecated-red.svg?&label=Maintenance">&nbsp;&nbsp; -->
    <!-- License -->
    <img src="https://img.shields.io/github/license/healkeiser/fxgui?&label=License"/> &nbsp;&nbsp;
    <!-- GitHub build workflow -->
    <img src="https://img.shields.io/github/actions/workflow/status/healkeiser/fxgui/release.yml?&label=Build&logo=github-actions&logoColor=white" alt="Build"> &nbsp;&nbsp;
    <!-- PyPI version-->
    <a href="https://pypi.org/project/fxgui"><img src="https://img.shields.io/pypi/v/fxgui?&logo=pypi&logoColor=white&label=Version" alt="PyPI Version"/></a> &nbsp;&nbsp;
    <!-- PyPI downloads -->
    <a href="https://pepy.tech/projects/fxgui"><img src="https://static.pepy.tech/badge/fxgui" alt="PyPI Downloads"></a> &nbsp;&nbsp;
    <!-- Last Commit -->
    <img src="https://img.shields.io/github/last-commit/healkeiser/fxgui?logo=github&label=Last%20Commit" alt="Last Commit"> &nbsp;&nbsp;
    <!-- Commit Activity -->
    <a href="https://github.com/healkeiser/fxgui/pulse" alt="Activity"><img src="https://img.shields.io/github/commit-activity/m/healkeiser/fxgui?&logo=github&label=Commit%20Activity"></a> &nbsp;&nbsp;
    <!-- GitHub stars -->
    <img src="https://img.shields.io/github/stars/healkeiser/fxgui" alt="GitHub Stars"/> &nbsp;&nbsp;
  </p>

</div>



<!-- TABLE OF CONTENTS -->
## Table of Contents

- [Table of Contents](#table-of-contents)
- [About](#about)
- [Installation](#installation)
- [Example](#example)
- [Documentation](#documentation)
- [Screenshots](#screenshots)
- [Contact](#contact)



<!-- ABOUT -->
## About

Custom Python classes and utilities tailored for Qt built UI, in VFX-oriented DCC applications.



<!-- INSTALLATION -->
## Installation

### From PyPI

The package is available on [PyPI](https://pypi.org/project/fxgui):

``` shell
pip install fxgui
```

### Qt Binding

A Qt 6 binding is required and not installed with fxgui: PySide6 6.5 or
newer, or PyQt6. A DCC such as Houdini ships its own PySide6; outside one,
install it yourself:

``` shell
pip install fxgui "PySide6>=6.5"
```

Qt 5 (PySide2, PyQt5) is not supported: `import fxgui` raises an
`ImportError` that names the binding it found.

### From Source

Clone the repository with submodules:

``` shell
git clone --recurse-submodules https://github.com/healkeiser/fxgui
cd fxgui
pip install -e .
```

Or using the requirements file:

``` shell
pip install -r requirements.txt
```

### Optional Dependencies

To build the documentation site with [Zensical](https://zensical.org):

``` shell
pip install -e ".[zensical]"
zensical serve    # Preview at http://127.0.0.1:8000
zensical build    # Write the site to site/
```

> [!IMPORTANT]
> In order to have access to the module inside your application, make sure to add `fxgui` to the `$PYTHONPATH` of the DCCs. For Houdini, you can find the [`houdini_package.json` example file](./houdini_package.json).



<!-- EXAMPLE -->
## Example

After installing fxgui, open the gallery. It shows every public widget, a page per kind, and its Window menu switches the theme:

``` shell
python -m fxgui.examples
```



<!-- DOCUMENTATION -->
## Documentation

Please read the full documentation [here](https://healkeiser.github.io/fxgui/).



<!-- CONTACT -->
## Contact

Project Link: [fxgui](https://github.com/healkeiser/fxgui)

<p align='center'>
  <!-- GitHub profile -->
  <a href="https://github.com/healkeiser">
    <img src="https://img.shields.io/badge/healkeiser-181717?logo=github&style=social" alt="GitHub"/></a>&nbsp;&nbsp;
  <!-- LinkedIn -->
  <a href="https://www.linkedin.com/in/valentin-beaumont">
    <img src="https://img.shields.io/badge/Valentin%20Beaumont-0A66C2?logo=linkedin&style=social" alt="LinkedIn"/></a>&nbsp;&nbsp;
  <!-- Behance -->
  <a href="https://www.behance.net/el1ven">
    <img src="https://img.shields.io/badge/el1ven-1769FF?logo=behance&style=social" alt="Behance"/></a>&nbsp;&nbsp;
  <!-- X -->
  <a href="https://twitter.com/valentinbeaumon">
    <img src="https://img.shields.io/badge/@valentinbeaumon-1DA1F2?logo=x&style=social" alt="Twitter"/></a>&nbsp;&nbsp;
  <!-- Instagram -->
  <a href="https://www.instagram.com/val.beaumontart">
    <img src="https://img.shields.io/badge/@val.beaumontart-E4405F?logo=instagram&style=social" alt="Instagram"/></a>&nbsp;&nbsp;
  <!-- Gumroad -->
  <a href="https://healkeiser.gumroad.com/subscribe">
    <img src="https://img.shields.io/badge/healkeiser-36a9ae?logo=gumroad&style=social" alt="Gumroad"/></a>&nbsp;&nbsp;
  <!-- Gmail -->
  <a href="mailto:valentin.onze@gmail.com">
    <img src="https://img.shields.io/badge/valentin.onze@gmail.com-D14836?logo=gmail&style=social" alt="Email"/></a>&nbsp;&nbsp;
  <!-- Buy me a coffee -->
  <a href="https://www.buymeacoffee.com/healkeiser">
    <img src="https://img.shields.io/badge/Buy Me A Coffee-FFDD00?&logo=buy-me-a-coffee&logoColor=black" alt="Buy Me A Coffee"/></a>&nbsp;&nbsp;
</p>
