napari supports a number of Qt backends which can be installed by the end user.
We strongly discourage plugins depending on a specific one, because then installing such a plugin in a napari environment that has a different backend will likely break the environment. For example, this means that anyone using the napari bundled app will have the application broken.
Instead, use qtpy (https://pypi.org/project/QtPy/) as an abstraction layer.
See our plugin best practices for more details.
https://napari.org/dev/plugins/building_a_plugin/best_practices.html
This guide is slightly outdated regarding the conda specifics, plus we now also fully support PyQT6, but the gist is correct.
napari supports a number of Qt backends which can be installed by the end user.
We strongly discourage plugins depending on a specific one, because then installing such a plugin in a napari environment that has a different backend will likely break the environment. For example, this means that anyone using the napari bundled app will have the application broken.
Instead, use qtpy (https://pypi.org/project/QtPy/) as an abstraction layer.
See our plugin best practices for more details.
https://napari.org/dev/plugins/building_a_plugin/best_practices.html
This guide is slightly outdated regarding the conda specifics, plus we now also fully support PyQT6, but the gist is correct.