Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/enthought/pyface
pyface: traits-capable windowing framework
https://github.com/enthought/pyface
gui-framework pyqt python qt traits wxpython wxwidgets
Last synced: 7 days ago
JSON representation
pyface: traits-capable windowing framework
- Host: GitHub
- URL: https://github.com/enthought/pyface
- Owner: enthought
- License: other
- Created: 2011-04-18T22:32:06.000Z (almost 14 years ago)
- Default Branch: main
- Last Pushed: 2023-11-24T12:27:40.000Z (about 1 year ago)
- Last Synced: 2025-01-04T05:17:35.358Z (14 days ago)
- Topics: gui-framework, pyqt, python, qt, traits, wxpython, wxwidgets
- Language: Python
- Homepage:
- Size: 25.1 MB
- Stars: 107
- Watchers: 57
- Forks: 55
- Open Issues: 211
-
Metadata Files:
- Readme: README.rst
- Changelog: CHANGES.txt
- License: LICENSE-CC-BY-3.0.txt
Awesome Lists containing this project
README
==========================================
Pyface: Traits-capable Windowing Framework
==========================================The Pyface project contains a toolkit-independent GUI abstraction layer,
which is used to support the "visualization" features of the Enthought Tool
Suite libraries. Pyface contains Traits-aware wrappers of standard GUI
elements such as Windows, Dialogs and Fields, together with the "Tasks"
application framework which provides a rich GUI experience with dock panes,
tabbed editors, and so forth. This permits you to write cross-platform
interactive GUI code without needing to use the underlying GUI backend.The following GUI backends are supported:
- PySide2 (stable) and PySide6 (experimental)
- PyQt5 (stable) and PyQt6 (in development)
- wxPython 4 (experimental)Example
-------The following code creates a window with a simple Python shell:
.. code-block:: python
from pyface.api import ApplicationWindow, GUI, IPythonShell
class MainWindow(ApplicationWindow):
""" The main application window. """#: The PythonShell that forms the contents of the window
shell = Instance(IPythonShell, allow_none=False)def _create_contents(self, parent):
""" Create the editor. """
self.shell.create(parent)
return self.shell.controldef destroy(self):
self.shell.destroy()
super().destroy()def _shell_default(self):
from pyface.api import PythonShell
return PythonShell()# Application entry point.
if __name__ == "__main__":
# Create the GUI.
gui = GUI()# Create and open the main window.
window = MainWindow(title="Python Shell", size=(640, 480))
window.open()# Start the GUI event loop!
gui.start_event_loop().. image:: https://raw.github.com/enthought/pyface/main/shell_window.png
:alt: A Pyface GUI window containing a Python shell.Installation
------------Pyface is a pure Python package. In most cases Pyface will be installable
using a simple ``pip install`` command.To install with a backend, choose one of the following, as appropriate:
.. code-block:: console
$ pip install pyface[pyside2]
$ pip install pyface[pyside6]
$ pip install pyface[pyqt5]
$ pip install pyface[wx]
Some optional functionality uses ``pillow`` and ``numpy`` and these can be
installed using optional dependencies:.. code-block:: console
$ pip install pyface[pillow]
$ pip install pyface[numpy]
For running tests a few more packages are required:
.. code-block:: console
$ pip install pyface[test]
Documentation
-------------* `Online Documentation `_.
* `API Documentation `_.
.. end_of_long_description
Developing Pyface
-----------------The `etstool.py` script provides utilities to assist developers wanting to work
on Pyface. To use it, you will need to have the source checked out via Git,
Enthought's `EDM `__ distribution manager, and
a minimal environment containing at least the
`Click `__ library.You can then follow the instructions in ``etstool.py``. In particular:
- use `etstool.py install` to create environments for particular toolkits and
runtimes
- use `etstool.py shell` to activate those environments
- use `etstool.py test` to run the tests in those environments
- use `etstool.py flake8` to perform style checks
- use `etstool.py docs` to build the documentation
- use `etstool.py test-all` to run the tests across all supported runtimes and toolkitsLicense
-------Pyface source code is licensed with a BSD-style license. Some default images
are licensed with other licenses. See the license files for further
information.