File: README.rst

package info (click to toggle)
python-pyface 8.0.0-5
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 13,944 kB
  • sloc: python: 54,107; makefile: 82
file content (128 lines) | stat: -rw-r--r-- 3,899 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
==========================================
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.control

        def 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 <http://docs.enthought.com/pyface/>`_.

* `API Documentation <http://docs.enthought.com/pyface/api/pyface.html>`_.

.. 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 <http://docs.enthought.com/edm/>`__ distribution manager, and
a minimal environment containing at least the
`Click <http://click.pocoo.org/>`__ 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 toolkits

License
-------

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.