<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Introduction — PyQt 4.8.3 Reference Guide</title> <link rel="stylesheet" href="_static/default.css" type="text/css" /> <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '', VERSION: '4.8.3', COLLAPSE_MODINDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true }; </script> <script type="text/javascript" src="_static/jquery.js"></script> <script type="text/javascript" src="_static/doctools.js"></script> <link rel="shortcut icon" href="_static/logo_tn.ico"/> <link rel="top" title="PyQt 4.8.3 Reference Guide" href="index.html" /> <link rel="next" title="Potential Incompatibilities with Earlier Versions" href="incompatibilities.html" /> <link rel="prev" title="PyQt Reference Guide" href="index.html" /> </head> <body> <div class="related"> <h3>Navigation</h3> <ul> <li class="right" style="margin-right: 10px"> <a href="genindex.html" title="General Index" accesskey="I">index</a></li> <li class="right" > <a href="modindex.html" title="Global Module Index" accesskey="M">modules</a> |</li> <li class="right" > <a href="incompatibilities.html" title="Potential Incompatibilities with Earlier Versions" accesskey="N">next</a> |</li> <li class="right" > <a href="index.html" title="PyQt Reference Guide" accesskey="P">previous</a> |</li> <li><a href="index.html">PyQt 4.8.3 Reference Guide</a> »</li> </ul> </div> <div class="document"> <div class="documentwrapper"> <div class="bodywrapper"> <div class="body"> <div class="section" id="introduction"> <h1>Introduction<a class="headerlink" href="#introduction" title="Permalink to this headline">¶</a></h1> <p>This is the reference guide for PyQt 4.8.3. PyQt v4 is a set of <a class="reference external" href="http://www.python.org">Python</a> bindings for v4 of the Qt application framework from <a class="reference external" href="http://qt.nokia.com">Nokia</a>.</p> <p>There is a separate <a class="reference external" href="classes.html">PyQt Class Reference</a>.</p> <p>Qt is a set of C++ libraries and development tools that includes platform independent abstractions for graphical user interfaces, networking, threads, Unicode, regular expressions, SQL databases, SVG, OpenGL, XML, and user and application settings. PyQt implements 440 of these classes as a set of Python modules.</p> <p>PyQt supports the Windows, Linux, UNIX and MacOS/X platforms.</p> <p>PyQt does not include Qt itself - you must obtain it separately.</p> <p>The homepage for PyQt is <a class="reference external" href="http://www.riverbankcomputing.com/software/pyqt/">http://www.riverbankcomputing.com/software/pyqt/</a>. Here you will always find the latest stable version, current development snapshots, and the latest version of this documentation.</p> <p>PyQt is built using the <a class="reference external" href="http://www.riverbankcomputing.com/software/sip/">SIP bindings generator</a>. SIP must be installed in order to build and use PyQt.</p> <p>Earlier versions of Qt are supported by PyQt v3.</p> <div class="section" id="license"> <h2>License<a class="headerlink" href="#license" title="Permalink to this headline">¶</a></h2> <p>PyQt is licensed on all platforms under a commercial license, the GPL v2 and the GPL v3. Your PyQt license must be compatible with your Qt license. If you use the GPL versions then your own code must also use a compatible license.</p> <p>PyQt, unlike Qt, is not available under the LGPL.</p> <p>You can purchase a commercial PyQt license <a class="reference external" href="http://www.riverbankcomputing.com/commercial/buy">here</a>.</p> </div> <div class="section" id="pyqt-components"> <h2>PyQt Components<a class="headerlink" href="#pyqt-components" title="Permalink to this headline">¶</a></h2> <p>PyQt comprises a number of different components. First of all there are a number of Python extension modules. These are all installed in the <tt class="xref docutils literal"><span class="pre">PyQt4</span></tt> Python package.</p> <ul class="simple"> <li>The <tt class="xref docutils literal"><span class="pre">QtCore</span></tt> module. This contains the core non-GUI classes, including the event loop and Qt’s signal and slot mechanism. It also includes platform independent abstractions for Unicode, threads, mapped files, shared memory, regular expressions, and user and application settings.</li> <li>The <tt class="xref docutils literal"><span class="pre">QtGui</span></tt> module. This contains the majority of the GUI classes.</li> <li>The <tt class="xref docutils literal"><span class="pre">QtHelp</span></tt> module. This contains classes for creating and viewing searchable documentation.</li> <li>The <tt class="xref docutils literal"><span class="pre">QtNetwork</span></tt> module. This module contains classes for writing UDP and TCP clients and servers. It includes classes that implement FTP and HTTP clients and support DNS lookups.</li> <li>The <tt class="xref docutils literal"><span class="pre">QtOpenGL</span></tt> module. This module contains classes that enable the use of OpenGL in rendering 3D graphics in PyQt applications.</li> <li>The <tt class="xref docutils literal"><span class="pre">QtScript</span></tt> module. This module contains classes that enable PyQt applications to be scripted using Qt’s JavaScript interpreter.</li> <li>The <tt class="xref docutils literal"><span class="pre">QtScriptTools</span></tt> module. This module contains classes that contain additional components (e.g. a debugger) that are used with Qt’s JavaScript interpreter.</li> <li>The <tt class="xref docutils literal"><span class="pre">QtSql</span></tt> module. This module contains classes that integrate with SQL databases. It includes editable data models for database tables that can be used with GUI classes. It also includes an implementation of <a class="reference external" href="http://www.sqlite.org">SQLite</a>.</li> <li>The <tt class="xref docutils literal"><span class="pre">QtSvg</span></tt> module. This module contains classes for displaying the contents of SVG files.</li> <li>The <tt class="xref docutils literal"><span class="pre">QtTest</span></tt> module. This module contains functions that enable unit testing of PyQt applications. (PyQt does not implement the complete Qt unit test framework. Instead it assumes that the standard Python unit test framework will be used and implements those functions that simulate a user interacting with a GUI.)</li> <li>The <tt class="xref docutils literal"><span class="pre">QtWebKit</span></tt> module. This module implements a web browser engine based on the WebKit open source browser engine.</li> <li>The <tt class="xref docutils literal"><span class="pre">QtXml</span></tt> module. This module contains classes that implement SAX and DOM interfaces to Qt’s XML parser.</li> <li>The <tt class="xref docutils literal"><span class="pre">QtXmlPatterns</span></tt> module. This module contains classes that implement XQuery and XPath support for XML and custom data models.</li> <li>The <tt class="xref docutils literal"><span class="pre">phonon</span></tt> module. This module contains classes that implement a cross-platform multimedia framework that enables the use of audio and video content in PyQt applications.</li> <li>The <tt class="xref docutils literal"><span class="pre">QtDeclarative</span></tt> module. This module provides a declarative framework for building highly dynamic, custom user interfaces using QML.</li> <li>The <tt class="xref docutils literal"><span class="pre">QtMultimedia</span></tt> module. This module provides low-level multimedia functionality. Application developers would normally use the <tt class="xref docutils literal"><span class="pre">phonon</span></tt> module.</li> <li>The <tt class="xref docutils literal"><span class="pre">QtAssistant</span></tt> module. This module contains classes that allow Qt Assistant to be integrated with a PyQt application to provide online help. This module is not available with Qt v4.7 and later - use the <tt class="xref docutils literal"><span class="pre">QtHelp</span></tt> module instead.</li> <li>The <tt class="xref docutils literal"><span class="pre">QtDesigner</span></tt> module. This module contains classes that allow Qt Designer to be extended using PyQt. See <a class="reference external" href="designer.html#ref-designer-plugins"><em>Writing Qt Designer Plugins</em></a> for a full description of how to do this.</li> <li>The <tt class="xref docutils literal"><span class="pre">QAxContainer</span></tt> module. This module contains classes that allow access to ActiveX controls and COM objects.</li> <li>The <tt class="xref docutils literal"><span class="pre">Qt</span></tt> module. This module consolidates the classes contained in all of the modules described above into a single module. This has the advantage that you don’t have to worry about which underlying module contains a particular class. It has the disadvantage that it loads the whole of the Qt framework, thereby increasing the memory footprint of an application. Whether you use this consolidated module, or the individual component modules is down to personal taste.</li> <li>The <a class="reference external" href="http://www.freedesktop.org/wiki/Software_2fdbus">DBus</a> support module is installed as <tt class="xref docutils literal"><span class="pre">dbus.mainloop.qt</span></tt>. PyQt does not support Qt’s native DBus classes (which are very C++ orientated). Instead the <tt class="xref docutils literal"><span class="pre">dbus.mainloop.qt</span></tt> module provides support for the Qt event loop in the same way that the <tt class="xref docutils literal"><span class="pre">dbus.mainloop.glib</span></tt> included with the standard <tt class="docutils literal"><span class="pre">dbus-python</span></tt> bindings package provides support for the GLib event loop. The API is described in <a class="reference external" href="dbus.html#ref-dbus"><em>The DBus Support Module</em></a>. It is only available for PyQt for X11 and only if the <tt class="docutils literal"><span class="pre">dbus-python</span></tt> v0.80 (or later) bindings package is installed.</li> <li>The <a title="" class="reference external" href="designer.html#module-PyQt4.uic"><tt class="xref docutils literal"><span class="pre">uic</span></tt></a> module. This module contains classes for handling the <tt class="docutils literal"><span class="pre">.ui</span></tt> files created by Qt Designer that describe the whole or part of a graphical user interface. It includes classes that load a <tt class="docutils literal"><span class="pre">.ui</span></tt> file and render it directly, and classes that generate Python code from a <tt class="docutils literal"><span class="pre">.ui</span></tt> file for later execution.</li> <li>The <a title="" class="reference external" href="build_system.html#module-PyQt4.pyqtconfig"><tt class="xref docutils literal"><span class="pre">pyqtconfig</span></tt></a> module is an extention of the SIP build system and is created when PyQt is configured. It encapsulates all the necessary information about your Qt installation and makes it easier to write installation scripts for bindings built on top of PyQt. It is covered in detail in <a class="reference external" href="build_system.html#ref-build-system"><em>The PyQt Build System</em></a>.</li> </ul> <p>PyQt also contains a number of utility programs.</p> <ul> <li><p class="first"><strong>pyuic4</strong> corresponds to the Qt <strong>uic</strong> utility. It converts GUIs created using Qt Designer to Python code.</p> </li> <li><p class="first"><strong>pyrcc4</strong> corresponds to the Qt <strong>rcc</strong> utility. It embeds arbitrary resources (eg. icons, images, translation files) described by a resource collection file in a Python module.</p> <div class="admonition note"> <p class="first admonition-title">Note</p> <p class="last">It will only be included if your copy of Qt includes the XML module.</p> </div> </li> <li><p class="first"><strong>pylupdate4</strong> corresponds to the Qt <strong>lupdate</strong> utility. It extracts all of the translatable strings from Python code and creates or updates <tt class="docutils literal"><span class="pre">.ts</span></tt> translation files. These are then used by Qt Linguist to manage the translation of those strings.</p> <div class="admonition note"> <p class="first admonition-title">Note</p> <p class="last">It will only be included if your copy of Qt includes the XML module.</p> </div> </li> </ul> <p>When PyQt is configured a file called <tt class="docutils literal"><span class="pre">PyQt4.api</span></tt> is generated. This can be used by the QScintilla editor component (at <a class="reference external" href="http://www.riverbankcomputing.com/software/qscintilla/">http://www.riverbankcomputing.com/software/qscintilla/</a>) to enable the use of auto-completion and call tips when editing PyQt code. The API file is installed automatically if QScintilla is already installed.</p> <p>PyQt includes a large number of examples. These are ports to Python of many of the C++ examples provided with Qt. They can be found in the <tt class="docutils literal"><span class="pre">examples</span></tt> directory.</p> <p>Finally, PyQt contains the <tt class="docutils literal"><span class="pre">.sip</span></tt> files used by SIP to generate PyQt itself. These can be used by developers of bindings of other Qt based class libraries - for example <a class="reference external" href="http://pyqwt.sourceforge.net/">PyQwt and PyQwt3D</a>.</p> </div> </div> </div> </div> </div> <div class="sphinxsidebar"> <div class="sphinxsidebarwrapper"> <p class="logo"><a href="index.html"> <img class="logo" src="_static/logo.png" alt="Logo"/> </a></p> <h3><a href="index.html">Table Of Contents</a></h3> <ul> <li><a class="reference external" href="#">Introduction</a><ul> <li><a class="reference external" href="#license">License</a></li> <li><a class="reference external" href="#pyqt-components">PyQt Components</a></li> </ul> </li> </ul> <h4>Previous topic</h4> <p class="topless"><a href="index.html" title="previous chapter">PyQt Reference Guide</a></p> <h4>Next topic</h4> <p class="topless"><a href="incompatibilities.html" title="next chapter">Potential Incompatibilities with Earlier Versions</a></p> <div id="searchbox" style="display: none"> <h3>Quick search</h3> <form class="search" action="search.html" method="get"> <input type="text" name="q" size="18" /> <input type="submit" value="Go" /> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> <p class="searchtip" style="font-size: 90%"> Enter search terms or a module, class or function name. </p> </div> <script type="text/javascript">$('#searchbox').show(0);</script> </div> </div> <div class="clearer"></div> </div> <div class="related"> <h3>Navigation</h3> <ul> <li class="right" style="margin-right: 10px"> <a href="genindex.html" title="General Index" >index</a></li> <li class="right" > <a href="modindex.html" title="Global Module Index" >modules</a> |</li> <li class="right" > <a href="incompatibilities.html" title="Potential Incompatibilities with Earlier Versions" >next</a> |</li> <li class="right" > <a href="index.html" title="PyQt Reference Guide" >previous</a> |</li> <li><a href="index.html">PyQt 4.8.3 Reference Guide</a> »</li> </ul> </div> <div class="footer"> © Copyright 2011 Riverbank Computing Limited. Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.6.6. </div> </body> </html>