Toga
A Python native, OS native GUI toolkit.
Prerequisites
Minimum requirements
- Toga requires Python 3. Python 2 is not supported.
- If you're on macOS, you need to be on 10.7 (Lion) or newer.
- If you're on Linux, you need to have GTK+ 3.10 or later. This is the version
that ships starting with Ubuntu 14.04 and Fedora 20. You also need to install
the Python 3 bindings and development files for GTK+.
- Ubuntu / Debian
sudo apt-get install python3-dev python3-gi python3-gi-cairo gir1.2-gtk-3.0 libgirepository1.0-dev libcairo2-dev
- Fedora
sudo dnf install pygobject3 python3-gobject python3-cairo-devel cairo-gobject-devel gobject-introspection-devel
orsudo yum install pygobject3 python3-gobject python3-cairo-devel cairo-gobject-devel gobject-introspection-devel
- Arch Linux
sudo pacman -S gobject-introspection
- Ubuntu / Debian
- We're working on Windows support, but not all features and widgets are supported. At a minimum, you'll need Python 3 and .NET Framework 4. This has been tested on Windows 10, but should work on 7 and 8. Pull requests, help and corrections are most welcome.
Optional extras for Linux
In Linux, extra packages are needed if you want to use the WebView widget:
- Ubuntu / Debian
sudo apt-get install gir1.2-webkit2-4.0
Note: for Ubuntu 14.04 installgir1.2-webkit-3.0
instead ofgir1.2-webkit-4.0
- Fedora
sudo dnf install pywebkitgtk
orsudo yum install pywebkitgtk
- Arch Linux
sudo pacman -S webkit2gtk
Quickstart
To get a demonstration of the capabilities of Toga, run the following:
$ pip install toga-demo $ toga-demo
This will pop up a GUI window with some sample widgets.
Documentation
Documentation for Toga can be found on Read The Docs.
Community
Toga is part of the BeeWare suite. You can talk to the community through:
- @pybeeware on Twitter
- The pybee/general channel on Gitter.
Contributing
If you'd like to contribute to Toga development, our guide for first time contributors will help you get started.
If you experience problems with Toga, log them on GitHub. If you want to contribute code, please fork the code and submit a pull request.