# Examples README
Table of contents:
* [Hello World!](#hello-world)
* [Supported examples](#supported-examples)
* [Other examples](#other-examples)
* [More examples to come](#more-examples-to-come)
## Hello World!
Instructions to install the cefpython3 package, clone the repository
and run the hello_world.py example:
```
pip install cefpython3==57.0
git clone https://github.com/cztomczak/cefpython.git
cd cefpython/examples/
python hello_world.py
```
## Supported examples
Examples provided in the examples/ root directory are actively
maintained. If there are any issues in examples read top comments
in sources to see whether this is a known issue with available
workarounds.
**Featured**
- [hello_world.py](hello_world.py) - Basic example, doesn't require any
third party GUI framework to run
- [tutorial.py](tutorial.py) - Example from [Tutorial](../docs/Tutorial.md)
- [screenshot.py](screenshot.py) - Example of off-screen rendering mode
to create a screenshot of a web page. The code from this example is
discussed in great details in Tutorial in the [Off-screen rendering](../docs/Tutorial.md#off-screen-rendering)
section.
**Embedding using various GUI frameworks**
- [gtk2.py](gtk2.py): example for [PyGTK](http://www.pygtk.org/)
library (GTK 2)
- [gtk3.py](gtk3.py): example for [PyGObject / PyGI](https://wiki.gnome.org/Projects/PyGObject)
library (GTK 3). Currently broken on Mac ([#310](../../../issues/310)).
- [pysdl2.py](pysdl2.py): off-screen rendering example for
[PySDL2](https://github.com/marcusva/py-sdl2) library. Example has some
issues that are reported in Issue [#324](../../../issues/324).
- [pywin32.py](pywin32.py): example for [pywin32](https://github.com/mhammond/pywin32)
library
- [qt.py](qt.py): example for [PyQt4](https://wiki.python.org/moin/PyQt4),
[PyQt5](https://pypi.python.org/pypi/PyQt5)
and [PySide](https://wiki.qt.io/PySide) libraries
- [tkinter_.py](tkinter_.py): example for [Tkinter](https://wiki.python.org/moin/TkInter).
Currently broken on Mac ([#309](../../../issues/309)).
- [wxpython.py](wxpython.py): example for [wxPython](https://wxpython.org/)
toolkit
**Build executable using Python packagers**
- [PyInstaller example](pyinstaller/README-pyinstaller.md):
example of packaging app using [PyInstaller](http://www.pyinstaller.org/)
packager
**Unit tests**
There are also available unit tests and its usage of the API can
be of some use. See [main_test.py](../unittests/main_test.py).
## Other examples
There are even more examples available, they do not reside in the examples/
directory. Some of them were created for old verions of CEF and were not
yet ported to latest CEF. Some of them are externally maintained.
- Kivy framework:
see [Kivy](https://github.com/cztomczak/cefpython/wiki/Kivy) wiki page.
- Panda3D game engine:
see [Panda3D](https://github.com/cztomczak/cefpython/wiki/Panda3D) wiki page.
- PyGame/PyOpenGL:
see [gist by AnishN](https://gist.github.com/AnishN/aa3bb27fc9d69319955ed9a8973cd40f)
- Example of implementing [ResourceHandler](../api/ResourceHandler.md)
with the use of [WebRequest](../api/WebRequest.md) object and
[WebRequestClient](../api/WebRequestClient.md) interface to allow
for reading/modifying web requests: see the [wxpython-response.py](https://github.com/cztomczak/cefpython/blob/cefpython31/cefpython/cef3/linux/binaries_64bit/wxpython-response.py)
example in the cefpython31 branch.
- Example of using Python network library (urllib3/openssl) instead of Chromium's
network library - see [gist by Massimiliano Dal Cero](https://gist.github.com/yattamax/0252a3c5dc54a2f81650d5c0eafabf99)
## More examples to come
Here is a list of issues in the tracker to create or upgrade examples:
- [Issue #323](../../../issues/323) - "Create cocos2d example"
- [Issue #322](../../../issues/322) - "Create pyglet example"
- [Issue #312](../../../issues/312) - "Easy to use CefBrowser widgets
for many popular GUI toolkits"
- [Issue #301](../../../issues/301) - "Fix cefpython3.wx package to work
with latest v55+"
- [Issue #289](../../../issues/289) - "Pygame / PyOpenGL example"
- [Issue #288](../../../issues/288) - "Create panda3d_.py example"
- [Issue #285](../../../issues/285) - "[kivy_.py] Refactor example, make
it work cross-platform and move it
to examples/"
- [Issue #252](../../../issues/252) - "Use CEF views in Hello World, Tutorial
and Offscreen examples, and in Unit
tests"
- [Issue #224](../../../issues/224) - "Port CEF 1 examples to CEF 3"
- [Issue #109](../../../issues/109) - "The ResourceHandler example"
Packaging examples:
- [Issue #407](../../../issues/407) - "Example of packaging app using
Cython compiler"
- [Issue #396](../../../issues/396) - "Example of packaging app using
Nuitka compiler"
- [Issue #338](../../../issues/338) - "Example of packaging app using
cx_Freeze"
- [Issue #337](../../../issues/337) - "Example of packaging app using
py2app"
- [Issue #135](../../../issues/135) - "Example of packaging app using
pyinstaller"