Python Frequently Asked Questions, Release 3.9.5 The GObject introspection bindings for Python allow you to write GTK+ 3 applications. There is also a Python GTK+ 3 Tutorial. The older PyGtk bindings for the Gtk+ 2 toolkit have been implemented by James Henstridge; see <http://www. pygtk.org>. Kivy is a cross-platform GUI library supporting both desktop operating systems (Windows, macOS, Linux) and mobile devices (Android, iOS). It is written in Python and Cython, and can use a range of windowing backends. Kivy is free and open source software distributed under the MIT license. Python bindings for the FLTK toolkit, a simple yet powerful and mature cross-platform windowing system, are available from the PyFLTK project. For OpenGL bindings, see PyOpenGL. By installing the PyObjc Objective-C bridge, Python programs can use Mac OS X’s Cocoa libraries. Pythonwin by Mark Hammond includes an interface to the Microsoft Foundation Classes and a Python programming environment that’s written mostly in Python using the MFC classes. Freeze is a tool to create stand-alone applications. When freezing Tkinter applications, the applications will not be truly stand-alone, as the application will still need the Tcl and Tk libraries. One solution is to ship the application with the Tcl and Tk libraries, and point to them at run-time using the TCL_LIBRARY and$_{TK_LIBRARY}$ environment variables. To get truly stand-alone applications, the Tcl scripts that form the library have to be integrated into the application as well. One tool supporting that is SAM (stand-alone modules), which is part of the Tix distribution (http://tix. sourceforge.net/). Build Tix with SAM enabled, perform the appropriate call to$_{Tclsam_init()}$ , etc. inside Python’s$_{Modules/}$ tkappinit.c , and link with libtclsam and libtksam (you might include the Tix libraries as well). 7.4.1 How do I freeze Tkinter applications? 7.4 Tkinter questions 7.3 What platform-specific GUI toolkits exist for Python? 7.2.7 OpenGL 7.2.6 FLTK 7.2.5 Kivy 7.2.4 Gtk+ Chapter 7. Graphic User Interface FAQ 72