summaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/PyQt.html12845
-rw-r--r--doc/PyQt.sgml5807
-rw-r--r--doc/qtdocs.sip1920
3 files changed, 20572 insertions, 0 deletions
diff --git a/doc/PyQt.html b/doc/PyQt.html
new file mode 100644
index 0000000..a7fb2ab
--- /dev/null
+++ b/doc/PyQt.html
@@ -0,0 +1,12845 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML
+><HEAD
+><TITLE
+>Python Bindings for Qt (3.18.1)</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.79"></HEAD
+><BODY
+CLASS="ARTICLE"
+><DIV
+CLASS="ARTICLE"
+><DIV
+CLASS="TITLEPAGE"
+><H1
+CLASS="TITLE"
+><A
+NAME="AEN2"
+>Python Bindings for Qt (3.18.1)</A
+></H1
+><H3
+CLASS="AUTHOR"
+><A
+NAME="AEN4"
+>Phil Thompson</A
+></H3
+><DIV
+><DIV
+CLASS="ABSTRACT"
+><P
+></P
+><A
+NAME="AEN7"
+></A
+><P
+> This document describes a set of Python bindings for the Qt widget set.
+ Contact the author at <CODE
+CLASS="EMAIL"
+>&#60;<A
+HREF="mailto:phil@riverbankcomputing.co.uk"
+>phil@riverbankcomputing.co.uk</A
+>&#62;</CODE
+>.
+ </P
+><P
+></P
+></DIV
+></DIV
+><HR></DIV
+><DIV
+CLASS="SECT1"
+><H2
+CLASS="SECT1"
+><A
+NAME="AEN10"
+>Introduction</A
+></H2
+><P
+>PyQt is a set of Python bindings for the Qt toolkit and available for all
+platforms supported by Qt, including Windows, Linux, UNIX, MacOS/X and embedded
+systems such as the Sharp Zaurus and the Compaq iPAQ. They have been tested
+against Qt versions 1.43 to 3.3.7, Qt Non-commercial, Qtopia 1.5.0, and Python
+versions 1.5 to 2.5. Qt/Embedded v3 is not supported. Qt v4 is supported
+by PyQt v4.</P
+><P
+>PyQt is available under the GPL license for use with the GPL version of Qt, a
+a commercial license for use with the commercial version of Qt, a
+non-commercial license for use with the non-commercial version of Qt v2, and an
+educational license for use with the educational version of Qt.</P
+><P
+>PyQt is built using SIP (a tool for generating Python extension modules for
+C++ class libraries). SIP v4.6 or later must be installed in order to build
+and run this version of PyQt.</P
+><P
+>PyQt for MacOS/X requires Qt v3.1.0 or later and Python v2.3 or later.</P
+><P
+>The bindings are implemented as a number of Python modules</P
+><P
+></P
+><UL
+><LI
+><P
+><TT
+CLASS="LITERAL"
+>qt</TT
+> is the main module and contains the core classes and most
+user interface widgets.</P
+></LI
+><LI
+><P
+><TT
+CLASS="LITERAL"
+>qtaxcontainer</TT
+> contains a sub-set of the classes implemented
+in Qt's QAxContainer module, part of Qt's ActiveQt framework.</P
+></LI
+><LI
+><P
+><TT
+CLASS="LITERAL"
+>qtcanvas</TT
+> contains the classes implemented in Qt's Canvas
+module.</P
+></LI
+><LI
+><P
+><TT
+CLASS="LITERAL"
+>qtgl</TT
+> contains the classes implemented in Qt's OpenGL module.</P
+></LI
+><LI
+><P
+><TT
+CLASS="LITERAL"
+>qtnetwork</TT
+> contains the classes implemented in Qt's Network
+module.</P
+></LI
+><LI
+><P
+><TT
+CLASS="LITERAL"
+>qtpe</TT
+> contains the classes implemented in Qtopia (originally
+called the Qt Palmtop Environment). It is only supported with Qt/Embedded.</P
+></LI
+><LI
+><P
+><TT
+CLASS="LITERAL"
+>qtsql</TT
+> contains the classes implemented in Qt's SQL module.</P
+></LI
+><LI
+><P
+><TT
+CLASS="LITERAL"
+>qttable</TT
+> contains the classes implemented in Qt's Table
+module.</P
+></LI
+><LI
+><P
+><TT
+CLASS="LITERAL"
+>qtui</TT
+> contains the classes implemented in Qt's qui library.
+These allow GUIs to be created directly from Qt Designer's
+<TT
+CLASS="LITERAL"
+>.ui</TT
+> files.</P
+></LI
+><LI
+><P
+><TT
+CLASS="LITERAL"
+>qtxml</TT
+> contains the classes implemented in Qt's XML module.</P
+></LI
+><LI
+><P
+><TT
+CLASS="LITERAL"
+>qtext</TT
+> contains useful third-party classes that are not part
+of Qt. At the moment it contains bindings for QScintilla, the port to Qt of
+the Scintilla programmer's editor class.</P
+></LI
+></UL
+><P
+>PyQt also includes the <TT
+CLASS="LITERAL"
+>pyuic</TT
+> and
+<TT
+CLASS="LITERAL"
+>pylupdate</TT
+> utilities which correspond to the Qt
+<TT
+CLASS="LITERAL"
+>uic</TT
+> and <TT
+CLASS="LITERAL"
+>lupdate</TT
+> utilities.
+<TT
+CLASS="LITERAL"
+>pyuic</TT
+> converts the GUI designs created with Qt Designer to
+executable Python code. <TT
+CLASS="LITERAL"
+>pylupdate</TT
+> scans Python code,
+extracts all strings that are candidates for internationalisation, and creates
+an XML file for use by Qt Linguist.</P
+>
+</DIV>
+<DIV
+CLASS="SECT1"
+><HR><H2
+CLASS="SECT1"
+><A
+NAME="AEN95"
+>Other PyQt Goodies</A
+></H2
+><DIV
+CLASS="SECT2"
+><H3
+CLASS="SECT2"
+><A
+NAME="AEN97"
+>Using Qt Designer</A
+></H3
+><P
+>Qt Designer is a GPL'ed GUI design editor provided by Trolltech as part of Qt.
+It generates an XML description of a GUI design. Qt includes
+<TT
+CLASS="LITERAL"
+>uic</TT
+> which generates C++ code from that XML.</P
+><P
+>PyQt includes <TT
+CLASS="LITERAL"
+>pyuic</TT
+> which generates Python code from the
+same XML. The Python code is self contained and can be executed immediately.</P
+><P
+>It is sometimes useful to be able to include some specific Python code in the
+output generated by <TT
+CLASS="LITERAL"
+>pyuic</TT
+>. For example, if you are using
+custom widgets, <TT
+CLASS="LITERAL"
+>pyuic</TT
+> has no way of knowing the name of the
+Python module containing the widget and so cannot generate the required
+<TT
+CLASS="LITERAL"
+>import</TT
+> statement. To help get around this,
+<TT
+CLASS="LITERAL"
+>pyuic</TT
+> will extract any lines entered in the
+<TT
+CLASS="LITERAL"
+>Comment</TT
+> field of Qt Designer's
+<TT
+CLASS="LITERAL"
+>Form Settings</TT
+> dialog that begin with
+<TT
+CLASS="LITERAL"
+>Python:</TT
+> and copies them to the generated output.</P
+><P
+>Here's a simple example showing the contents of the <TT
+CLASS="LITERAL"
+>Comment</TT
+>
+field.</P
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>This comment will be ignored by pyuic.
+Python:
+Python:# Import our custom widget.
+Python:from foo import bar</PRE
+></TD
+></TR
+></TABLE
+><P
+>Here's the corresponding output from <TT
+CLASS="LITERAL"
+>pyuic</TT
+>.</P
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>from qt import *
+
+# Import our custom widget.
+from foo import bar</PRE
+></TD
+></TR
+></TABLE
+><P
+>Thanks to Christian Bird, <TT
+CLASS="LITERAL"
+>pyuic</TT
+> will extract Python code
+entered using Qt Designer to implement slots. In Qt Designer, when you need to
+edit a slot and the source editor appears, enter Python code between the curly
+braces. Don't worry about the correct starting indent level, each line is
+prepended with a correct indentation.</P
+><P
+>Make sure that the <TT
+CLASS="LITERAL"
+>ui.h</TT
+> file is in the same directory as the
+<TT
+CLASS="LITERAL"
+>.ui</TT
+> file when using <TT
+CLASS="LITERAL"
+>pyuic</TT
+>. The
+<TT
+CLASS="LITERAL"
+>.ui</TT
+> file implies the name of the <TT
+CLASS="LITERAL"
+>.ui.h</TT
+>
+file so there is no need to specify it on the command line.</P
+><P
+>Here's an example of a simple slot. </P
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void DebMainWindowFrm::browsePushButtonClicked()
+{
+if self.debugging:
+ QMessageBox.critical(self, "Event", "browse pushbutton was clicked!")
+}</PRE
+></TD
+></TR
+></TABLE
+><P
+>Here is the resulting code when <TT
+CLASS="LITERAL"
+>pyuic</TT
+> is run.</P
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>class DebMainWindowFrm(QMainWindow):
+ ...stuff...
+ def browsePushButtonClicked(self):
+ if self.debugging:
+ QMessageBox.critical(self, "Event", "browse pushbutton was clicked!")</PRE
+></TD
+></TR
+></TABLE
+><P
+>Note that indenting is as normal and that <TT
+CLASS="LITERAL"
+>self</TT
+> and all other
+parameters passed to the slot are available.</P
+><P
+>If you use this, you will need to turn off all of the fancy options for the C++
+editor in Designer as it tries to force C++ syntax and that's naturally
+annoying when trying to code in Python.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN133"
+>Using Qt Linguist</A
+></H3
+><P
+>Qt includes the <TT
+CLASS="LITERAL"
+>lupdate</TT
+> program which parses C++ source
+files converting calls to the <TT
+CLASS="LITERAL"
+>QT_TR_NOOP()</TT
+> and
+<TT
+CLASS="LITERAL"
+>QT_TRANSLATE_NOOP()</TT
+> macros to <TT
+CLASS="LITERAL"
+>.ts</TT
+>
+language source files. The <TT
+CLASS="LITERAL"
+>lrelease</TT
+> program is then used to
+generate <TT
+CLASS="LITERAL"
+>.qm</TT
+> binary language files that are distributed with
+your application.</P
+><P
+>Thanks to Detlev Offenbach, PyQt includes the <TT
+CLASS="LITERAL"
+>pylupdate</TT
+>
+program. This generates the same <TT
+CLASS="LITERAL"
+>.ts</TT
+> language source files
+from your PyQt source files.</P
+></DIV
+></DIV
+><DIV
+CLASS="SECT1"
+><HR><H2
+CLASS="SECT1"
+><A
+NAME="AEN145"
+>Deploying Commercial PyQt Applications</A
+></H2
+><P
+>When deploying commercial PyQt applications it is necessary to discourage users
+from accessing the underlying PyQt modules for themselves. A user that used
+the modules shipped with your application to develop new applications would
+themselves be considered a developer and would need their own commercial Qt and
+PyQt licenses.</P
+><P
+>One solution to this problem is the
+<A
+HREF="http://www.riverbankcomputing.co.uk/vendorid/"
+TARGET="_top"
+>VendorID</A
+>
+package. This allows you to build Python extension modules that can only be
+imported by a digitally signed custom interpreter. The package enables you to
+create such an interpreter with your application embedded within it. The
+result is an interpreter that can only run your application, and PyQt modules
+that can only be imported by that interpreter. You can use the package to
+similarly restrict access to any extension module.</P
+><P
+>In order to build PyQt with support for the VendorID package, pass the
+<TT
+CLASS="LITERAL"
+>-i</TT
+> command line flag to <TT
+CLASS="LITERAL"
+>configure.py</TT
+>.</P
+></DIV
+><DIV
+CLASS="SECT1"
+><HR><H2
+CLASS="SECT1"
+><A
+NAME="AEN153"
+><TT
+CLASS="LITERAL"
+>pyqtconfig</TT
+> and Build System Support</A
+></H2
+><P
+>The SIP build system (ie. the <TT
+CLASS="LITERAL"
+>sipconfig</TT
+> module) is described
+in the SIP documentation. PyQt includes the <TT
+CLASS="LITERAL"
+>pyqtconfig</TT
+>
+module that can be used by configuration scripts of other bindings that are
+built on top of PyQt.</P
+><P
+>The <TT
+CLASS="LITERAL"
+>pyqtconfig</TT
+> module contains the following classes:</P
+><P
+></P
+><DIV
+CLASS="VARIABLELIST"
+><DL
+><DT
+><TT
+CLASS="LITERAL"
+>Configuration(sipconfig.Configuration)</TT
+></DT
+><DD
+><P
+>This class encapsulates additional configuration values, specific to PyQt, that
+can be accessed as instance variables.</P
+><P
+>The following configuration values are provided (in addition to those provided
+by the <TT
+CLASS="LITERAL"
+>sipconfig.Configuration</TT
+> class):</P
+><P
+></P
+><DIV
+CLASS="VARIABLELIST"
+><DL
+><DT
+><TT
+CLASS="LITERAL"
+>pyqt_bin_dir</TT
+></DT
+><DD
+><P
+>The name of the directory containing the <TT
+CLASS="LITERAL"
+>pyuic</TT
+> and
+<TT
+CLASS="LITERAL"
+>pylupdate</TT
+> executables.</P
+><P
+></P
+><P
+></P
+></DD
+><DT
+><TT
+CLASS="LITERAL"
+>pyqt_mod_dir</TT
+></DT
+><DD
+><P
+>The name of the directory containing the PyQt modules.</P
+><P
+></P
+><P
+></P
+></DD
+><DT
+><TT
+CLASS="LITERAL"
+>pyqt_modules</TT
+></DT
+><DD
+><P
+>A string containing the names of the PyQt modules that were installed.</P
+><P
+></P
+><P
+></P
+></DD
+><DT
+><TT
+CLASS="LITERAL"
+>pyqt_qt_sip_flags</TT
+></DT
+><DD
+><P
+>A string of the SIP flags used to generate the code for the
+<TT
+CLASS="LITERAL"
+>qt</TT
+> module and which should be added to those needed by any
+module that imports the <TT
+CLASS="LITERAL"
+>qt</TT
+> module.</P
+><P
+></P
+><P
+></P
+></DD
+><DT
+><TT
+CLASS="LITERAL"
+>pyqt_qtaxcontainer_sip_flags</TT
+></DT
+><DD
+><P
+>A string of the SIP flags used to generate the code for the
+<TT
+CLASS="LITERAL"
+>qtaxcontainer</TT
+> module and which should be added to those
+needed by any module that imports the <TT
+CLASS="LITERAL"
+>qtaxcontainer</TT
+> module.</P
+><P
+></P
+><P
+></P
+></DD
+><DT
+><TT
+CLASS="LITERAL"
+>pyqt_qtcanvas_sip_flags</TT
+></DT
+><DD
+><P
+>A string of the SIP flags used to generate the code for the
+<TT
+CLASS="LITERAL"
+>qtcanvas</TT
+> module and which should be added to those needed by
+any module that imports the <TT
+CLASS="LITERAL"
+>qtcanvas</TT
+> module.</P
+><P
+></P
+><P
+></P
+></DD
+><DT
+><TT
+CLASS="LITERAL"
+>pyqt_qtext_sip_flags</TT
+></DT
+><DD
+><P
+>A string of the SIP flags used to generate the code for the
+<TT
+CLASS="LITERAL"
+>qtext</TT
+> module and which should be added to those needed by
+any module that imports the <TT
+CLASS="LITERAL"
+>qtext</TT
+> module.</P
+><P
+></P
+><P
+></P
+></DD
+><DT
+><TT
+CLASS="LITERAL"
+>pyqt_qtgl_sip_flags</TT
+></DT
+><DD
+><P
+>A string of the SIP flags used to generate the code for the
+<TT
+CLASS="LITERAL"
+>qtgl</TT
+> module and which should be added to those needed by any
+module that imports the <TT
+CLASS="LITERAL"
+>qtgl</TT
+> module.</P
+><P
+></P
+><P
+></P
+></DD
+><DT
+><TT
+CLASS="LITERAL"
+>pyqt_qtnetwork_sip_flags</TT
+></DT
+><DD
+><P
+>A string of the SIP flags used to generate the code for the
+<TT
+CLASS="LITERAL"
+>qtnetwork</TT
+> module and which should be added to those needed
+by any module that imports the <TT
+CLASS="LITERAL"
+>qtnetwork</TT
+> module.</P
+><P
+></P
+><P
+></P
+></DD
+><DT
+><TT
+CLASS="LITERAL"
+>pyqt_qtsql_sip_flags</TT
+></DT
+><DD
+><P
+>A string of the SIP flags used to generate the code for the
+<TT
+CLASS="LITERAL"
+>qtsql</TT
+> module and which should be added to those needed by
+any module that imports the <TT
+CLASS="LITERAL"
+>qtsql</TT
+> module.</P
+><P
+></P
+><P
+></P
+></DD
+><DT
+><TT
+CLASS="LITERAL"
+>pyqt_qttable_sip_flags</TT
+></DT
+><DD
+><P
+>A string of the SIP flags used to generate the code for the
+<TT
+CLASS="LITERAL"
+>qttable</TT
+> module and which should be added to those needed by
+any module that imports the <TT
+CLASS="LITERAL"
+>qttable</TT
+> module.</P
+><P
+></P
+><P
+></P
+></DD
+><DT
+><TT
+CLASS="LITERAL"
+>pyqt_qtui_sip_flags</TT
+></DT
+><DD
+><P
+>A string of the SIP flags used to generate the code for the
+<TT
+CLASS="LITERAL"
+>qtui</TT
+> module and which should be added to those needed by any
+module that imports the <TT
+CLASS="LITERAL"
+>qtui</TT
+> module.</P
+><P
+></P
+><P
+></P
+></DD
+><DT
+><TT
+CLASS="LITERAL"
+>pyqt_qtxml_sip_flags</TT
+></DT
+><DD
+><P
+>A string of the SIP flags used to generate the code for the
+<TT
+CLASS="LITERAL"
+>qtxml</TT
+> module and which should be added to those needed by
+any module that imports the <TT
+CLASS="LITERAL"
+>qtxml</TT
+> module.</P
+><P
+></P
+><P
+></P
+></DD
+><DT
+><TT
+CLASS="LITERAL"
+>pyqt_sip_dir</TT
+></DT
+><DD
+><P
+>The name of the base directory where the <TT
+CLASS="LITERAL"
+>.sip</TT
+> files for each
+of the PyQt modules is installed. A sub-directory exists with the same name as
+the module.</P
+><P
+></P
+><P
+></P
+></DD
+><DT
+><TT
+CLASS="LITERAL"
+>pyqt_version</TT
+></DT
+><DD
+><P
+>The PyQt version as a 3 part hexadecimal number (eg. v3.10 is represented as
+<TT
+CLASS="LITERAL"
+>0x030a00</TT
+>).</P
+><P
+></P
+><P
+></P
+></DD
+><DT
+><TT
+CLASS="LITERAL"
+>pyqt_version_str</TT
+></DT
+><DD
+><P
+>The PyQt version as a string. For development snapshots it will start with
+<TT
+CLASS="LITERAL"
+>snapshot-</TT
+>.</P
+><P
+></P
+><P
+></P
+></DD
+></DL
+></DIV
+></DD
+><DT
+><TT
+CLASS="LITERAL"
+>QtModuleMakefile(sipconfig.SIPModuleMakefile)</TT
+></DT
+><DD
+><P
+>The Makefile class for modules that import the <TT
+CLASS="LITERAL"
+>qt</TT
+> module.</P
+><P
+></P
+><DIV
+CLASS="VARIABLELIST"
+><DL
+><DT
+><TT
+CLASS="LITERAL"
+>finalise(self)</TT
+></DT
+><DD
+><P
+>This is a reimplementation of <TT
+CLASS="LITERAL"
+>sipconfig.Makefile.finalise()</TT
+>.</P
+><P
+></P
+><P
+></P
+></DD
+></DL
+></DIV
+></DD
+><DT
+><TT
+CLASS="LITERAL"
+>QtAxContainerModuleMakefile(QtModuleMakefile)</TT
+></DT
+><DD
+><P
+>The Makefile class for modules that import the <TT
+CLASS="LITERAL"
+>qtaxcontainer</TT
+>
+module.</P
+><P
+></P
+><DIV
+CLASS="VARIABLELIST"
+><DL
+><DT
+><TT
+CLASS="LITERAL"
+>finalise(self)</TT
+></DT
+><DD
+><P
+>This is a reimplementation of <TT
+CLASS="LITERAL"
+>sipconfig.Makefile.finalise()</TT
+>.</P
+><P
+></P
+><P
+></P
+></DD
+></DL
+></DIV
+></DD
+><DT
+><TT
+CLASS="LITERAL"
+>QtCanvasModuleMakefile(QtModuleMakefile)</TT
+></DT
+><DD
+><P
+>The Makefile class for modules that import the <TT
+CLASS="LITERAL"
+>qtcanvas</TT
+>
+module.</P
+><P
+></P
+><DIV
+CLASS="VARIABLELIST"
+><DL
+><DT
+><TT
+CLASS="LITERAL"
+>finalise(self)</TT
+></DT
+><DD
+><P
+>This is a reimplementation of <TT
+CLASS="LITERAL"
+>sipconfig.Makefile.finalise()</TT
+>.</P
+><P
+></P
+><P
+></P
+></DD
+></DL
+></DIV
+></DD
+><DT
+><TT
+CLASS="LITERAL"
+>QtExtModuleMakefile(QtModuleMakefile)</TT
+></DT
+><DD
+><P
+>The Makefile class for modules that import the <TT
+CLASS="LITERAL"
+>qtext</TT
+> module.</P
+><P
+></P
+><DIV
+CLASS="VARIABLELIST"
+><DL
+><DT
+><TT
+CLASS="LITERAL"
+>finalise(self)</TT
+></DT
+><DD
+><P
+>This is a reimplementation of <TT
+CLASS="LITERAL"
+>sipconfig.Makefile.finalise()</TT
+>.</P
+><P
+></P
+><P
+></P
+></DD
+></DL
+></DIV
+></DD
+><DT
+><TT
+CLASS="LITERAL"
+>QtGLModuleMakefile(QtModuleMakefile)</TT
+></DT
+><DD
+><P
+>The Makefile class for modules that import the <TT
+CLASS="LITERAL"
+>qtgl</TT
+> module.</P
+><P
+></P
+><DIV
+CLASS="VARIABLELIST"
+><DL
+><DT
+><TT
+CLASS="LITERAL"
+>finalise(self)</TT
+></DT
+><DD
+><P
+>This is a reimplementation of <TT
+CLASS="LITERAL"
+>sipconfig.Makefile.finalise()</TT
+>.</P
+><P
+></P
+><P
+></P
+></DD
+></DL
+></DIV
+></DD
+><DT
+><TT
+CLASS="LITERAL"
+>QtNetworkModuleMakefile(QtModuleMakefile)</TT
+></DT
+><DD
+><P
+>The Makefile class for modules that import the <TT
+CLASS="LITERAL"
+>qtnetwork</TT
+>
+module.</P
+><P
+></P
+><DIV
+CLASS="VARIABLELIST"
+><DL
+><DT
+><TT
+CLASS="LITERAL"
+>finalise(self)</TT
+></DT
+><DD
+><P
+>This is a reimplementation of <TT
+CLASS="LITERAL"
+>sipconfig.Makefile.finalise()</TT
+>.</P
+><P
+></P
+><P
+></P
+></DD
+></DL
+></DIV
+></DD
+><DT
+><TT
+CLASS="LITERAL"
+>QtTableModuleMakefile(QtModuleMakefile)</TT
+></DT
+><DD
+><P
+>The Makefile class for modules that import the <TT
+CLASS="LITERAL"
+>qttable</TT
+>
+module.</P
+><P
+></P
+><DIV
+CLASS="VARIABLELIST"
+><DL
+><DT
+><TT
+CLASS="LITERAL"
+>finalise(self)</TT
+></DT
+><DD
+><P
+>This is a reimplementation of <TT
+CLASS="LITERAL"
+>sipconfig.Makefile.finalise()</TT
+>.</P
+><P
+></P
+><P
+></P
+></DD
+></DL
+></DIV
+></DD
+><DT
+><TT
+CLASS="LITERAL"
+>QtSQLModuleMakefile(QtTableModuleMakefile)</TT
+></DT
+><DD
+><P
+>The Makefile class for modules that import the <TT
+CLASS="LITERAL"
+>qtsql</TT
+> module.</P
+><P
+></P
+><DIV
+CLASS="VARIABLELIST"
+><DL
+><DT
+><TT
+CLASS="LITERAL"
+>finalise(self)</TT
+></DT
+><DD
+><P
+>This is a reimplementation of <TT
+CLASS="LITERAL"
+>sipconfig.Makefile.finalise()</TT
+>.</P
+><P
+></P
+><P
+></P
+></DD
+></DL
+></DIV
+></DD
+><DT
+><TT
+CLASS="LITERAL"
+>QtUIModuleMakefile(QtModuleMakefile)</TT
+></DT
+><DD
+><P
+>The Makefile class for modules that import the <TT
+CLASS="LITERAL"
+>qtui</TT
+> module.</P
+><P
+></P
+><DIV
+CLASS="VARIABLELIST"
+><DL
+><DT
+><TT
+CLASS="LITERAL"
+>finalise(self)</TT
+></DT
+><DD
+><P
+>This is a reimplementation of <TT
+CLASS="LITERAL"
+>sipconfig.Makefile.finalise()</TT
+>.</P
+><P
+></P
+><P
+></P
+></DD
+></DL
+></DIV
+></DD
+><DT
+><TT
+CLASS="LITERAL"
+>QtXMLModuleMakefile(QtModuleMakefile)</TT
+></DT
+><DD
+><P
+>The Makefile class for modules that import the <TT
+CLASS="LITERAL"
+>qtxml</TT
+> module.</P
+><P
+></P
+><DIV
+CLASS="VARIABLELIST"
+><DL
+><DT
+><TT
+CLASS="LITERAL"
+>finalise(self)</TT
+></DT
+><DD
+><P
+>This is a reimplementation of <TT
+CLASS="LITERAL"
+>sipconfig.Makefile.finalise()</TT
+>.</P
+><P
+></P
+><P
+></P
+></DD
+></DL
+></DIV
+></DD
+></DL
+></DIV
+></DIV
+><DIV
+CLASS="SECT1"
+><HR><H2
+CLASS="SECT1"
+><A
+NAME="AEN457"
+>Things to be Aware Of</A
+></H2
+><DIV
+CLASS="SECT2"
+><H3
+CLASS="SECT2"
+><A
+NAME="AEN459"
+>super and Wrapped Classes</A
+></H3
+><P
+>Internally PyQt implements a lazy technique for attribute lookup where
+attributes are only placed in type and instance dictionaries when they are
+first referenced. This technique is needed to reduce the time taken to import
+large modules such as PyQt.</P
+><P
+>In most circumstances this technique is transparent to an application. The
+exception is when <TT
+CLASS="LITERAL"
+>super</TT
+> is used with a PyQt class. The way
+that <TT
+CLASS="LITERAL"
+>super</TT
+> is currently implemented means that the lazy
+lookup is bypassed resulting in <TT
+CLASS="LITERAL"
+>AttributeError</TT
+> exceptions
+unless the attribute has been previously referenced.</P
+><P
+>Note that this restriction applies to any class wrapped by SIP and not just
+PyQt.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN467"
+>Python Strings, Qt Strings and Unicode</A
+></H3
+><P
+>Unicode support was added to Qt in v2.0 and to Python in v1.6. In Qt, Unicode
+support is implemented using the <TT
+CLASS="LITERAL"
+>QString</TT
+> class. It is
+important to understand that <TT
+CLASS="LITERAL"
+>QString</TT
+>s, Python string objects
+and Python Unicode objects are all different but conversions between them are
+automatic in many cases and easy to achieve manually when needed.</P
+><P
+>Whenever PyQt expects a <TT
+CLASS="LITERAL"
+>QString</TT
+> as a function argument, a
+Python string object or a Python Unicode object can be provided instead, and
+PyQt will do the necessary conversion automatically.</P
+><P
+>You may also manually convert Python string and Unicode objects to
+<TT
+CLASS="LITERAL"
+>QString</TT
+>s by using the <TT
+CLASS="LITERAL"
+>QString</TT
+> constructor
+as demonstrated in the following code fragment.</P
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>qs1 = QString('Converted Python string object')
+qs2 = QString(u'Converted Python Unicode object')</PRE
+></TD
+></TR
+></TABLE
+><P
+>In order to convert a <TT
+CLASS="LITERAL"
+>QString</TT
+> to a Python string object use
+the Python <TT
+CLASS="LITERAL"
+>str()</TT
+> function. Applying
+<TT
+CLASS="LITERAL"
+>str()</TT
+> to a null <TT
+CLASS="LITERAL"
+>QString</TT
+> and an empty
+<TT
+CLASS="LITERAL"
+>QString</TT
+> both result in an empty Python string object.</P
+><P
+>In order to convert a <TT
+CLASS="LITERAL"
+>QString</TT
+> to a Python Unicode object use
+the Python <TT
+CLASS="LITERAL"
+>unicode()</TT
+> function. Applying
+<TT
+CLASS="LITERAL"
+>unicode()</TT
+> to a null <TT
+CLASS="LITERAL"
+>QString</TT
+> and an empty
+<TT
+CLASS="LITERAL"
+>QString</TT
+> both result in an empty Python Unicode object.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN490"
+>Access to Protected Member Functions</A
+></H3
+><P
+>When an instance of a C++ class is not created from Python it is not possible
+to access the protected member functions, or emit the signals, of that
+instance. Attempts to do so will raise a Python exception. Also, any Python
+methods corresponding to the instance's virtual member functions will never be
+called.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN493"
+><TT
+CLASS="LITERAL"
+>None</TT
+> and <TT
+CLASS="LITERAL"
+>NULL</TT
+></A
+></H3
+><P
+>Throughout the bindings, the <TT
+CLASS="LITERAL"
+>None</TT
+> value can be specified
+wherever <TT
+CLASS="LITERAL"
+>NULL</TT
+> is acceptable to the underlying C++ code.</P
+><P
+>Equally, <TT
+CLASS="LITERAL"
+>NULL</TT
+> is converted to <TT
+CLASS="LITERAL"
+>None</TT
+>
+whenever it is returned by the underlying C++ code.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN503"
+>Support for C++ <TT
+CLASS="LITERAL"
+>void *</TT
+> Data Types</A
+></H3
+><P
+>PyQt represents <TT
+CLASS="LITERAL"
+>void *</TT
+> values as objects of type
+<TT
+CLASS="LITERAL"
+>sip.voidptr</TT
+>. Such values are often used to pass the
+addresses of external objects between different Python modules. To make this
+easier, a Python integer (or anything that Python can convert to an integer)
+can be used whenever a <TT
+CLASS="LITERAL"
+>sip.voidptr</TT
+> is expected.</P
+><P
+>A <TT
+CLASS="LITERAL"
+>sip.voidptr</TT
+> may be converted to a Python integer by using
+the <TT
+CLASS="LITERAL"
+>int()</TT
+> builtin function.</P
+><P
+>A <TT
+CLASS="LITERAL"
+>sip.voidptr</TT
+> may be converted to a Python string by using
+its <TT
+CLASS="LITERAL"
+>asstring()</TT
+> method. The <TT
+CLASS="LITERAL"
+>asstring()</TT
+>
+method takes an integer argument which is the length of the data in bytes.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN517"
+>Support for Threads</A
+></H3
+><P
+>PyQt implements the full set of Qt's thread classes. Python, of course, also
+has its own thread extension modules. If you are using SIP v4 (or later) and
+Python v2.3.5 (or later) then PyQt does not impose any additional restrictions.
+(Read the relevant part of the Qt documentation to understand the restrictions
+imposed by the Qt API.)</P
+><P
+>If you are using earlier versions of either SIP or Python then it is possible
+to use either of the APIs so long as you follow some simple rules.</P
+><P
+></P
+><UL
+><LI
+><P
+>If you use the Qt API then the very first <TT
+CLASS="LITERAL"
+>import</TT
+> of one of
+the PyQt modules must be done from the main thread.</P
+></LI
+><LI
+><P
+>If you use the Python API then all calls to PyQt (including any
+<TT
+CLASS="LITERAL"
+>import</TT
+>s) must be done from one thread only. Therefore, if
+you want to make calls to PyQt from several threads then you must use the Qt
+API.</P
+></LI
+><LI
+><P
+>If you want to use both APIs in the same application then all calls to PyQt
+must be done from threads created using the Qt API.</P
+></LI
+></UL
+><P
+>The above comments actually apply to any SIP generated module, not just PyQt.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN531"
+>Garbage Collection</A
+></H3
+><P
+>C++ does not garbage collect unreferenced class instances, whereas Python does.
+In the following C++ fragment both colours exist even though the first can no
+longer be referenced from within the program:</P
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>c = new QColor();
+c = new QColor();</PRE
+></TD
+></TR
+></TABLE
+><P
+>In the corresponding Python fragment, the first colour is destroyed when
+the second is assigned to <TT
+CLASS="LITERAL"
+>c</TT
+>:</P
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>c = QColor()
+c = QColor()</PRE
+></TD
+></TR
+></TABLE
+><P
+>In Python, each colour must be assigned to different names. Typically this
+is done within class definitions, so the code fragment would be something like:</P
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>self.c1 = QColor()
+self.c2 = QColor()</PRE
+></TD
+></TR
+></TABLE
+><P
+>Sometimes a Qt class instance will maintain a pointer to another instance and
+will eventually call the destructor of that second instance. The most common
+example is that a <TT
+CLASS="LITERAL"
+>QObject</TT
+> (and any of its sub-classes) keeps
+pointers to its children and will automatically call their destructors. In
+these cases, the corresponding Python object will also keep a reference to the
+corresponding child objects.</P
+><P
+>So, in the following Python fragment, the first <TT
+CLASS="LITERAL"
+>QLabel</TT
+> is
+not destroyed when the second is assigned to <TT
+CLASS="LITERAL"
+>l</TT
+> because the
+parent <TT
+CLASS="LITERAL"
+>QWidget</TT
+> still has a reference to it.</P
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>p = QWidget()
+l = QLabel('First label',p)
+l = QLabel('Second label',p)</PRE
+></TD
+></TR
+></TABLE
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN547"
+>C++ Variables</A
+></H3
+><P
+>Access to C++ variables is supported. They are accessed as Python instance
+variables. For example:</P
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>tab = QTab()
+tab.label = "First Tab"
+tab.r = QRect(10,10,75,30)</PRE
+></TD
+></TR
+></TABLE
+><P
+>Global variables and static class variables are effectively read-only. They
+can be assigned to, but the underlying C++ variable will not be changed. This
+may change in the future.</P
+><P
+>Access to protected C++ class variables is not supported. This may change in
+the future.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN553"
+>Multiple Inheritance</A
+></H3
+><P
+>It is not possible to define a new Python class that sub-classes from more than
+one Qt class.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN556"
+>i18n Support</A
+></H3
+><P
+>Qt implements i18n support through the Qt Linguist application, the
+<TT
+CLASS="LITERAL"
+>QTranslator</TT
+> class, and the
+<TT
+CLASS="LITERAL"
+>QApplication::translate()</TT
+>, <TT
+CLASS="LITERAL"
+>QObject::tr()</TT
+>
+and <TT
+CLASS="LITERAL"
+>QObject::trUtf8()</TT
+> methods. Usually the
+<TT
+CLASS="LITERAL"
+>tr()</TT
+> method is used to obtain the correct translation of a
+message. The translation process uses a message context to allow the same
+message to be translated differently. <TT
+CLASS="LITERAL"
+>tr()</TT
+> is actually
+generated by <TT
+CLASS="LITERAL"
+>moc</TT
+> and uses the hardcoded class name as the
+context. On the other hand, <TT
+CLASS="LITERAL"
+>QApplication::translate()</TT
+>
+allows to context to be explicitly stated.</P
+><P
+>Unfortunately, because of the way Qt implents <TT
+CLASS="LITERAL"
+>tr()</TT
+> (and
+<TT
+CLASS="LITERAL"
+>trUtf8()</TT
+>) it is not possible for PyQt to exactly reproduce
+its behavour. The PyQt implementation of <TT
+CLASS="LITERAL"
+>tr()</TT
+> (and
+<TT
+CLASS="LITERAL"
+>trUtf8()</TT
+>) uses the class name of the instance as the
+context. The key difference, and the source of potential problems, is that the
+context is determined dynamically in PyQt, but is hardcoded in Qt. In other
+words, the context of a translation may change depending on an instance's class
+hierarchy.</P
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>class A(QObject):
+ def __init__(self):
+ QObject.__init__(self)
+
+ def hello(self):
+ return self.tr("Hello")
+
+class B(A):
+ def __init__(self):
+ A.__init__(self)
+
+a = A()
+a.hello()
+
+b = B()
+b.hello()</PRE
+></TD
+></TR
+></TABLE
+><P
+>In the above the message is translated by <TT
+CLASS="LITERAL"
+>a.hello()</TT
+> using a
+context of <TT
+CLASS="LITERAL"
+>A</TT
+>, and by <TT
+CLASS="LITERAL"
+>b.hello()</TT
+> using a
+context of <TT
+CLASS="LITERAL"
+>B</TT
+>. In the equivalent C++ version the context
+would be <TT
+CLASS="LITERAL"
+>A</TT
+> in both cases.</P
+><P
+>The PyQt behaviour is unsatisfactory and may be changed in the future. It is
+recommended that <TT
+CLASS="LITERAL"
+>QApplication.translate()</TT
+> be used in
+preference to <TT
+CLASS="LITERAL"
+>tr()</TT
+> (and <TT
+CLASS="LITERAL"
+>trUtf8()</TT
+>). This
+is guaranteed to work with current and future versions of PyQt and makes it
+much easier to share message files between Python and C++ code. Below is the
+alternative implementation of <TT
+CLASS="LITERAL"
+>A</TT
+> that uses
+<TT
+CLASS="LITERAL"
+>QApplication.translate()</TT
+>.</P
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>class A(QObject):
+ def __init__(self):
+ QObject.__init__(self)
+
+ def hello(self):
+ return qApp.translate("A","Hello")</PRE
+></TD
+></TR
+></TABLE
+><P
+>Note that the code generated by <TT
+CLASS="LITERAL"
+>pyuic</TT
+> uses
+<TT
+CLASS="LITERAL"
+>QApplication.translate()</TT
+>.</P
+></DIV
+></DIV
+><DIV
+CLASS="SECT1"
+><HR><H2
+CLASS="SECT1"
+><A
+NAME="AEN589"
+>Signal and Slot Support</A
+></H2
+><P
+>A signal may be either a Qt signal (specified using
+<TT
+CLASS="LITERAL"
+>SIGNAL()</TT
+>) or a Python signal (specified using
+<TT
+CLASS="LITERAL"
+>PYSIGNAL()</TT
+>).</P
+><P
+>A slot can be either a Python callable object, a Qt signal (specified using
+<TT
+CLASS="LITERAL"
+>SIGNAL()</TT
+>), a Python signal (specified using
+<TT
+CLASS="LITERAL"
+>PYSIGNAL()</TT
+>), or a Qt slot (specified using
+<TT
+CLASS="LITERAL"
+>SLOT()</TT
+>).</P
+><P
+>You connect signals to slots (and other signals) as you would from C++. For
+example:</P
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>QObject.connect(a,SIGNAL("QtSig()"),pyFunction)
+QObject.connect(a,SIGNAL("QtSig()"),pyClass.pyMethod)
+QObject.connect(a,SIGNAL("QtSig()"),PYSIGNAL("PySig"))
+QObject.connect(a,SIGNAL("QtSig()"),SLOT("QtSlot()"))
+QObject.connect(a,PYSIGNAL("PySig"),pyFunction)
+QObject.connect(a,PYSIGNAL("PySig"),pyClass.pyMethod)
+QObject.connect(a,PYSIGNAL("PySig"),SIGNAL("QtSig()"))
+QObject.connect(a,PYSIGNAL("PySig"),SLOT("QtSlot()"))</PRE
+></TD
+></TR
+></TABLE
+><P
+>When a slot is a Python method that corresponds to a Qt slot then a signal can
+be connected to either the Python method or the Qt slot. The following
+connections achieve the same effect.</P
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>sbar = QScrollBar()
+lcd = QLCDNumber()
+
+QObject.connect(sbar,SIGNAL("valueChanged(int)"),lcd.display)
+QObject.connect(sbar,SIGNAL("valueChanged(int)"),lcd,SLOT("display(int)"))</PRE
+></TD
+></TR
+></TABLE
+><P
+>The difference is that the second connection is made at the C++ level and is
+more efficient.</P
+><P
+>Disconnecting signals works in exactly the same way.</P
+><P
+>Any instance of a class that is derived from the <TT
+CLASS="LITERAL"
+>QObject</TT
+>
+class can emit a signal using the <TT
+CLASS="LITERAL"
+>emit</TT
+> method. This takes
+two arguments. The first is the Python or Qt signal, the second is a Python
+tuple which are the arguments to the signal. For example:</P
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>a.emit(SIGNAL("clicked()"),())
+a.emit(PYSIGNAL("pySig"),("Hello","World"))</PRE
+></TD
+></TR
+></TABLE
+><P
+>Note that when a slot is a Python callable object its reference count is not
+increased. This means that a class instance can be deleted without having to
+explicitly disconnect any signals connected to its methods. However, it also
+means that using lambda expressions as slots will not work unless you keep a
+separate reference to the expression to prevent it from being immediately
+garbage collected.</P
+><P
+>Qt allows a signal to be connected to a slot that requires fewer arguments than
+the signal passes. The extra arguments are quietly discarded. Python slots
+can be used in the same way. </P
+></DIV
+><DIV
+CLASS="SECT1"
+><HR><H2
+CLASS="SECT1"
+><A
+NAME="AEN610"
+>Static Member Functions</A
+></H2
+><P
+>Static member functions are implemented as Python class functions.
+For example the C++ static member function
+<TT
+CLASS="LITERAL"
+>QObject::connect()</TT
+> is called from Python as
+<TT
+CLASS="LITERAL"
+>QObject.connect()</TT
+> or <TT
+CLASS="LITERAL"
+>self.connect()</TT
+> if
+called from a sub-class of <TT
+CLASS="LITERAL"
+>QObject</TT
+>.</P
+></DIV
+><DIV
+CLASS="SECT1"
+><HR><H2
+CLASS="SECT1"
+><A
+NAME="AEN617"
+>Enumerated Types</A
+></H2
+><P
+>Enumerated types are implemented as a set of simple variables corresponding to
+the separate enumerated values.</P
+><P
+>When using an enumerated value the name of the class (or a sub-class) in which
+the enumerated type was defined in must be included. For example:</P
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>Qt.SolidPattern
+QWidget.TabFocus
+QFrame.TabFocus</PRE
+></TD
+></TR
+></TABLE
+></DIV
+><DIV
+CLASS="SECT1"
+><HR><H2
+CLASS="SECT1"
+><A
+NAME="AEN622"
+>Module Reference Documentation</A
+></H2
+><P
+>The following sections should be used in conjunction with the normal class
+documentation - only the differences specific to the Python bindings are
+documented here.</P
+><P
+>In these sections, <SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Not yet implemented</I
+></SPAN
+>
+implies that the feature can be easily implemented if needed. <SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Not
+implemented</I
+></SPAN
+> implies that the feature will not be implemented, either
+because it cannot be or because it is not appropriate.</P
+><P
+>If a class is described as being <SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>fully implemented</I
+></SPAN
+> then
+all non-private member functions and all public class variables have been
+implemented.</P
+><P
+>If an operator has been implemented then it is stated explicitly.</P
+><P
+>Classes that are not mentioned have not yet been implemented.</P
+></DIV
+><DIV
+CLASS="SECT1"
+><HR><H2
+CLASS="SECT1"
+><A
+NAME="AEN632"
+><TT
+CLASS="LITERAL"
+>qt</TT
+> Module Reference</A
+></H2
+><DIV
+CLASS="SECT2"
+><H3
+CLASS="SECT2"
+><A
+NAME="AEN635"
+>Qt Constants</A
+></H3
+><P
+>All constant values defined by Qt have equivalent constants defined to Python.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN638"
+>Qt (Qt v2+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>Qt</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN642"
+>QAccel</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QAccel</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN646"
+>QAction (Qt v2.2+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QAction</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN650"
+>QActionGroup (Qt v2.2+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QActionGroup</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN654"
+>QApplication</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN656"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QApplication</CODE
+>(int &amp;argc, char **argv);<P
+></P
+></DIV
+><P
+>This takes one parameter which is a list of argument strings. Arguments
+used by Qt are removed from the list.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN664"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QApplication</CODE
+>(int &amp;argc, char **argv, bool GUIenabled);<P
+></P
+></DIV
+><P
+>This takes two parameters, the first of which is a list of argument strings.
+Arguments used by Qt are removed from the list.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN674"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QApplication</CODE
+>(int &amp;argc, char **argv, Type type);<P
+></P
+></DIV
+><P
+>This takes two parameters, the first of which is a list of argument strings.
+Arguments used by Qt are removed from the list. (Qt v2.2+)</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN684"
+></A
+><CODE
+CLASS="FUNCDEF"
+>int exec</CODE
+>();<P
+></P
+></DIV
+><P
+>This has been renamed to <TT
+CLASS="LITERAL"
+>exec_loop</TT
+> in Python.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN690"
+>QAssistantClient (Qt v3.1+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QAssistantClient</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN694"
+>QBitmap</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QBitmap</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN698"
+>QBrush</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QBrush</TT
+> is fully implemented, including the Python
+<TT
+CLASS="LITERAL"
+>==</TT
+> and <TT
+CLASS="LITERAL"
+>!=</TT
+> operators.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN704"
+>QButton</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QButton</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN708"
+>QButtonGroup</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QButtonGroup</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN712"
+>QByteArray</A
+></H3
+><P
+>A Python string can be used whenever a <TT
+CLASS="LITERAL"
+>QByteArray</TT
+> can be
+used. A <TT
+CLASS="LITERAL"
+>QByteArray</TT
+> can be converted to a Python string
+using the Python <TT
+CLASS="LITERAL"
+>str()</TT
+> function.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN718"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QByteArray &#38;assign</CODE
+>(const char *data, uint size);<P
+></P
+></DIV
+><P
+>Not implemented.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN726"
+></A
+><CODE
+CLASS="FUNCDEF"
+>char &#38;at</CODE
+>(uint i);<P
+></P
+></DIV
+><P
+>Not yet implemented.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN732"
+></A
+><CODE
+CLASS="FUNCDEF"
+>int contains</CODE
+>(const char &#38;d);<P
+></P
+></DIV
+><P
+>Not yet implemented.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN738"
+></A
+><CODE
+CLASS="FUNCDEF"
+>bool fill</CODE
+>(const char &#38;d, int size = -1);<P
+></P
+></DIV
+><P
+>Not yet implemented.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN746"
+></A
+><CODE
+CLASS="FUNCDEF"
+>int find</CODE
+>(const char &#38;d, uint i = 0);<P
+></P
+></DIV
+><P
+>Not yet implemented.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN754"
+></A
+><CODE
+CLASS="FUNCDEF"
+>void resetRawData</CODE
+>(const char *data, uintsize);<P
+></P
+></DIV
+><P
+>Not implemented.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN762"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QByteArray &#38;setRawData</CODE
+>(const char *data, uintsize);<P
+></P
+></DIV
+><P
+>Not implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN770"
+>QCDEStyle (Qt v2+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QCDEStyle</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN774"
+>QCheckBox</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QCheckBox</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN778"
+>QClipboard</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN780"
+></A
+><CODE
+CLASS="FUNCDEF"
+>void *data const</CODE
+>(const char *format);<P
+></P
+></DIV
+><P
+>Not yet implemented (Qt v1.x).</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN786"
+></A
+><CODE
+CLASS="FUNCDEF"
+>void setData</CODE
+>(const char *format, void *);<P
+></P
+></DIV
+><P
+>Not yet implemented (Qt v1.x).</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN794"
+>QColor</A
+></H3
+><P
+>The Python <TT
+CLASS="LITERAL"
+>==</TT
+> and <TT
+CLASS="LITERAL"
+>!=</TT
+> operators are
+supported.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN799"
+></A
+><CODE
+CLASS="FUNCDEF"
+>void getHsv</CODE
+>(int *h, int *s, int *v);<P
+></P
+></DIV
+><P
+>This takes no parameters and returns the <TT
+CLASS="LITERAL"
+>h</TT
+>,
+<TT
+CLASS="LITERAL"
+>s</TT
+> and <TT
+CLASS="LITERAL"
+>v</TT
+> values as a tuple.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN812"
+></A
+><CODE
+CLASS="FUNCDEF"
+>void getRgb</CODE
+>(int *r, int *g, int *b);<P
+></P
+></DIV
+><P
+>This takes no parameters and returns the <TT
+CLASS="LITERAL"
+>r</TT
+>,
+<TT
+CLASS="LITERAL"
+>g</TT
+> and <TT
+CLASS="LITERAL"
+>b</TT
+> values as a tuple.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN825"
+></A
+><CODE
+CLASS="FUNCDEF"
+>void hsv</CODE
+>(int *h, int *s, int *v);<P
+></P
+></DIV
+><P
+>This takes no parameters and returns the <TT
+CLASS="LITERAL"
+>h</TT
+>,
+<TT
+CLASS="LITERAL"
+>s</TT
+> and <TT
+CLASS="LITERAL"
+>v</TT
+> values as a tuple.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN838"
+></A
+><CODE
+CLASS="FUNCDEF"
+>void rgb</CODE
+>(int *r, int *g, int *b);<P
+></P
+></DIV
+><P
+>This takes no parameters and returns the <TT
+CLASS="LITERAL"
+>r</TT
+>,
+<TT
+CLASS="LITERAL"
+>g</TT
+> and <TT
+CLASS="LITERAL"
+>b</TT
+> values as a tuple.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN851"
+>QColorDialog (Qt v2+)</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN853"
+></A
+><CODE
+CLASS="FUNCDEF"
+>static QRgb getRgba</CODE
+>(QRgb initial, bool *ok, QWidget *parent = 0, const char *name = 0);<P
+></P
+></DIV
+><P
+>This takes the <TT
+CLASS="LITERAL"
+>initial</TT
+>, <TT
+CLASS="LITERAL"
+>parent</TT
+> and
+<TT
+CLASS="LITERAL"
+>name</TT
+> parameters and returns a tuple containing the
+<TT
+CLASS="LITERAL"
+>QRgb</TT
+> result and the <TT
+CLASS="LITERAL"
+>ok</TT
+> value.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN870"
+>QColorGroup</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QColorGroup</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN874"
+>QComboBox</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QComboBox</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN878"
+>QCommonStyle (Qt v2+)</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN880"
+></A
+><CODE
+CLASS="FUNCDEF"
+>virtual void getButtonShift</CODE
+>(int &amp;x, int &amp;y);<P
+></P
+></DIV
+><P
+>This takes no parameters and returns a tuple of the <TT
+CLASS="LITERAL"
+>x</TT
+> and
+<TT
+CLASS="LITERAL"
+>y</TT
+> values. (Qt v2)</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN890"
+></A
+><CODE
+CLASS="FUNCDEF"
+>virtual void tabbarMetrics</CODE
+>(const QTabBar *t, int &amp;hframe, int &amp;vframe, int &amp;overlap);<P
+></P
+></DIV
+><P
+>This takes only the <TT
+CLASS="LITERAL"
+>t</TT
+> parameter and returns a tuple of the
+<TT
+CLASS="LITERAL"
+>hframe</TT
+>, <TT
+CLASS="LITERAL"
+>vframe</TT
+> and
+<TT
+CLASS="LITERAL"
+>overlap</TT
+> values. (Qt v2)</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN906"
+>QCString (Qt v2+)</A
+></H3
+><P
+>A Python string can be used whenever a <TT
+CLASS="LITERAL"
+>QCString</TT
+> can be used.
+A <TT
+CLASS="LITERAL"
+>QCString</TT
+> can be converted to a Python string using the
+Python <TT
+CLASS="LITERAL"
+>str()</TT
+> function.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN912"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QCString &amp;sprintf</CODE
+>(const char *format, ...);<P
+></P
+></DIV
+><P
+>Not implemented.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN919"
+></A
+><CODE
+CLASS="FUNCDEF"
+>short toShort</CODE
+>(bool *ok = 0);<P
+></P
+></DIV
+><P
+>This returns a tuple of the <TT
+CLASS="LITERAL"
+>short</TT
+> result and the
+<TT
+CLASS="LITERAL"
+>ok</TT
+> value.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN927"
+></A
+><CODE
+CLASS="FUNCDEF"
+>ushort toUShort</CODE
+>(bool *ok = 0);<P
+></P
+></DIV
+><P
+>This returns a tuple of the <TT
+CLASS="LITERAL"
+>ushort</TT
+> result and the
+<TT
+CLASS="LITERAL"
+>ok</TT
+> value.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN935"
+></A
+><CODE
+CLASS="FUNCDEF"
+>int toInt</CODE
+>(bool *ok = 0);<P
+></P
+></DIV
+><P
+>This returns a tuple of the <TT
+CLASS="LITERAL"
+>int</TT
+> result and the
+<TT
+CLASS="LITERAL"
+>ok</TT
+> value.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN943"
+></A
+><CODE
+CLASS="FUNCDEF"
+>uint toUInt</CODE
+>(bool *ok = 0);<P
+></P
+></DIV
+><P
+>This returns a tuple of the <TT
+CLASS="LITERAL"
+>uint</TT
+> result and the
+<TT
+CLASS="LITERAL"
+>ok</TT
+> value.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN951"
+></A
+><CODE
+CLASS="FUNCDEF"
+>long toLong</CODE
+>(bool *ok = 0);<P
+></P
+></DIV
+><P
+>This returns a tuple of the <TT
+CLASS="LITERAL"
+>long</TT
+> result and the
+<TT
+CLASS="LITERAL"
+>ok</TT
+> value.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN959"
+></A
+><CODE
+CLASS="FUNCDEF"
+>ulong toULong</CODE
+>(bool *ok = 0);<P
+></P
+></DIV
+><P
+>This returns a tuple of the <TT
+CLASS="LITERAL"
+>ulong</TT
+> result and the
+<TT
+CLASS="LITERAL"
+>ok</TT
+> value.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN967"
+></A
+><CODE
+CLASS="FUNCDEF"
+>float toFloat</CODE
+>(bool *ok = 0);<P
+></P
+></DIV
+><P
+>This returns a tuple of the <TT
+CLASS="LITERAL"
+>float</TT
+> result and the
+<TT
+CLASS="LITERAL"
+>ok</TT
+> value.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN975"
+></A
+><CODE
+CLASS="FUNCDEF"
+>double toDouble</CODE
+>(bool *ok = 0);<P
+></P
+></DIV
+><P
+>This returns a tuple of the <TT
+CLASS="LITERAL"
+>double</TT
+> result and the
+<TT
+CLASS="LITERAL"
+>ok</TT
+> value.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN983"
+>QCursor</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QCursor</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN987"
+>QDataStream</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN989"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QDataStream &amp;readBytes</CODE
+>(const char *&amp;s, uint &amp;l);<P
+></P
+></DIV
+><P
+>This takes no parameters. The <TT
+CLASS="LITERAL"
+>QDataStream</TT
+> result and the
+data read are returned as a tuple.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN998"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QDataStream &amp;readRawBytes</CODE
+>(const char *s, uint l);<P
+></P
+></DIV
+><P
+>This takes only the <TT
+CLASS="LITERAL"
+>l</TT
+> parameter. The
+<TT
+CLASS="LITERAL"
+>QDataStream</TT
+> result and the data read are returned as a
+tuple.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN1008"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QDataStream &amp;writeBytes</CODE
+>(const char *s, uint len);<P
+></P
+></DIV
+><P
+><TT
+CLASS="LITERAL"
+>len</TT
+> is derived from <TT
+CLASS="LITERAL"
+>s</TT
+> and not passed as a
+parameter.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN1018"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QDataStream &amp;writeRawBytes</CODE
+>(const char *s, uint len);<P
+></P
+></DIV
+><P
+><TT
+CLASS="LITERAL"
+>len</TT
+> is derived from <TT
+CLASS="LITERAL"
+>s</TT
+> and not passed as a
+parameter.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1028"
+>QDate</A
+></H3
+><P
+>The Python
+<TT
+CLASS="LITERAL"
+>==</TT
+>, <TT
+CLASS="LITERAL"
+>!=</TT
+>,
+<TT
+CLASS="LITERAL"
+>&lt;</TT
+>, <TT
+CLASS="LITERAL"
+>&lt;=</TT
+>,
+<TT
+CLASS="LITERAL"
+>&gt;</TT
+>, <TT
+CLASS="LITERAL"
+>&gt;=</TT
+>
+and <TT
+CLASS="LITERAL"
+>__nonzero__</TT
+>
+operators are supported.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN1038"
+></A
+><CODE
+CLASS="FUNCDEF"
+>int weekNumber</CODE
+>(int *yearNum = 0);<P
+></P
+></DIV
+><P
+>This takes no parameters and returns the week number and the year number as a
+tuple. (Qt v3.1+)</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1044"
+>QDateTime</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QDateTime</TT
+> is fully implemented, including the Python
+<TT
+CLASS="LITERAL"
+>==</TT
+>, <TT
+CLASS="LITERAL"
+>!=</TT
+>,
+<TT
+CLASS="LITERAL"
+>&lt;</TT
+>, <TT
+CLASS="LITERAL"
+>&lt;=</TT
+>,
+<TT
+CLASS="LITERAL"
+>&gt;</TT
+>, <TT
+CLASS="LITERAL"
+>&gt;=</TT
+>
+and <TT
+CLASS="LITERAL"
+>__nonzero__</TT
+>
+operators.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1055"
+>QTime</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QTime</TT
+> is fully implemented, including the Python
+<TT
+CLASS="LITERAL"
+>==</TT
+>, <TT
+CLASS="LITERAL"
+>!=</TT
+>,
+<TT
+CLASS="LITERAL"
+>&lt;</TT
+>, <TT
+CLASS="LITERAL"
+>&lt;=</TT
+>,
+<TT
+CLASS="LITERAL"
+>&gt;</TT
+>, <TT
+CLASS="LITERAL"
+>&gt;=</TT
+>
+and <TT
+CLASS="LITERAL"
+>__nonzero__</TT
+>
+operators.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1066"
+>QDateEdit (Qt v3+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QDateEdit</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1070"
+>QTimeEdit (Qt v3+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QTimeEdit</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1074"
+>QDateTimeEdit (Qt v3+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QDateTimeEdit</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1078"
+>QDesktopWidget (Qt v3+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QDesktopWidget</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1082"
+>QDial (Qt v2.2+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QDial</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1086"
+>QDialog</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN1088"
+></A
+><CODE
+CLASS="FUNCDEF"
+>int exec</CODE
+>();<P
+></P
+></DIV
+><P
+>This has been renamed to <TT
+CLASS="LITERAL"
+>exec_loop</TT
+> in Python.</P
+><P
+>This method also causes ownership of the underlying C++ dialog to be
+transfered to Python. This means that the C++ dialog will be deleted when the
+Python wrapper is garbage collected. Although this is a little inconsistent,
+it ensures that the dialog is deleted without having to explicity code it
+using <TT
+CLASS="LITERAL"
+>QObject.deleteLater()</TT
+> or other techniques.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1096"
+>QDir</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QDir</TT
+> is fully implemented, including the Python
+<TT
+CLASS="LITERAL"
+>len</TT
+>, <TT
+CLASS="LITERAL"
+>[]</TT
+> (for reading slices and
+individual elements), <TT
+CLASS="LITERAL"
+>==</TT
+>, <TT
+CLASS="LITERAL"
+>!=</TT
+> and
+<TT
+CLASS="LITERAL"
+>in</TT
+> operators</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1105"
+>QFileInfoList</A
+></H3
+><P
+>This class isn't implemented. Whenever a <TT
+CLASS="LITERAL"
+>QFileInfoList</TT
+> is
+the return type of a function or the type of an argument, a Python list of
+<TT
+CLASS="LITERAL"
+>QFileInfo</TT
+> instances is used instead.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1110"
+>QDockArea (Qt v3+)</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN1112"
+></A
+><CODE
+CLASS="FUNCDEF"
+>bool hasDockWindow const</CODE
+>(QDockWindow *w, int *index = 0);<P
+></P
+></DIV
+><P
+>This takes the <TT
+CLASS="LITERAL"
+>w</TT
+> parameter and returns the index of the
+QDockWIndow or -1 if the QDockArea does not contain the QDockWindow.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1121"
+>QDockWindow (Qt v3+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QDockWindow</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1125"
+>QColorDrag (Qt v2.1+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QColorDrag</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1129"
+>QDragObject</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QDragObject</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1133"
+>QImageDrag</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QImageDrag</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1137"
+>QStoredDrag</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QStoredDrag</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1141"
+>QTextDrag</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QTextDrag</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1145"
+>QUriDrag (Qt v2+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QUriDrag</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1149"
+>QUrlDrag (Qt v1.x)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QUrlDrag</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1153"
+>QDropSite</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QDropSite</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1157"
+>QErrorMessage (Qt v3+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QErrorMessage</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1161"
+>QEvent</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QEvent</TT
+> is fully implemented.</P
+><P
+>Instances of <TT
+CLASS="LITERAL"
+>QEvent</TT
+>s are automatically converted to the
+correct sub-class.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1167"
+>QChildEvent</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QChildEvent</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1171"
+>QCloseEvent</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QCloseEvent</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1175"
+>QIconDragEvent (Qt v3.3+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QIconDragEvent</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1179"
+>QContextMenuEvent (Qt v3+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QContextMenuEvent</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1183"
+>QCustomEvent</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QCustomEvent</TT
+> is fully implemented. Any Python object can be
+passed as the event data and its reference count is increased.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1187"
+>QDragEnterEvent</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QDragEnterEvent</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1191"
+>QDragLeaveEvent</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QDragLeaveEvent</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1195"
+>QDragMoveEvent</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QDragMoveEvent</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1199"
+>QDropEvent</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QDropEvent</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1203"
+>QFocusEvent</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QFocusEvent</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1207"
+>QHideEvent</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QHideEvent</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1211"
+>QIMComposeEvent (Qt v3.1+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QIMComposeEvent</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1215"
+>QIMEvent (Qt v3+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QIMEvent</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1219"
+>QKeyEvent</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QKeyEvent</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1223"
+>QMouseEvent</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QMouseEvent</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1227"
+>QMoveEvent</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QMoveEvent</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1231"
+>QPaintEvent</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QPaintEvent</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1235"
+>QResizeEvent</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QResizeEvent</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1239"
+>QShowEvent</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QShowEvent</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1243"
+>QTabletEvent (Qt v3+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QTabletEvent</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1247"
+>QTimerEvent</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QTimerEvent</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1251"
+>QWheelEvent (Qt v2+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QWheelEvent</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1255"
+>QEventLoop (Qt v3.1+)</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN1257"
+></A
+><CODE
+CLASS="FUNCDEF"
+>virtual int exec</CODE
+>();<P
+></P
+></DIV
+><P
+>This has been renamed to <TT
+CLASS="LITERAL"
+>exec_loop</TT
+> in Python.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1263"
+>QFile</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN1265"
+></A
+><CODE
+CLASS="FUNCDEF"
+>bool open</CODE
+>(int m, FILE *f);<P
+></P
+></DIV
+><P
+>Not implemented.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN1273"
+></A
+><CODE
+CLASS="FUNCDEF"
+>Q_LONG readBlock</CODE
+>(char *data, Q_ULONG len);<P
+></P
+></DIV
+><P
+>This takes a single <TT
+CLASS="LITERAL"
+>len</TT
+> parameter. The
+<TT
+CLASS="LITERAL"
+>data</TT
+> is returned if there was no error, otherwise
+<TT
+CLASS="LITERAL"
+>None</TT
+> is returned.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN1284"
+></A
+><CODE
+CLASS="FUNCDEF"
+>Q_LONG readLine</CODE
+>(char *data, Q_ULONG maxlen);<P
+></P
+></DIV
+><P
+>This takes a single <TT
+CLASS="LITERAL"
+>maxlen</TT
+> parameter. The
+<TT
+CLASS="LITERAL"
+>data</TT
+> is returned if there was no error, otherwise
+<TT
+CLASS="LITERAL"
+>None</TT
+> is returned.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN1295"
+></A
+><CODE
+CLASS="FUNCDEF"
+>static void setDecodingFunction</CODE
+>(EncoderFn f);<P
+></P
+></DIV
+><P
+>Not yet implemented. (Qt v2+)</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN1301"
+></A
+><CODE
+CLASS="FUNCDEF"
+>static void setEncodingFunction</CODE
+>(EncoderFn f);<P
+></P
+></DIV
+><P
+>Not yet implemented. (Qt v2+)</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN1307"
+></A
+><CODE
+CLASS="FUNCDEF"
+>Q_LONG writeBlock</CODE
+>(const char *data, Q_ULONG len);<P
+></P
+></DIV
+><P
+><TT
+CLASS="LITERAL"
+>len</TT
+> is derived from <TT
+CLASS="LITERAL"
+>data</TT
+> and not passed
+as a parameter.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1317"
+>QFileDialog</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QFileDialog</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1321"
+>QFileIconProvider</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QFileIconProvider</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1325"
+>QFilePreview</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QFilePreview</TT
+> is fully implemented. However it cannot be
+used from Python in the same way as it is used from C++ because PyQt does not
+support multiple inheritance involving more than one wrapped class. A trick
+that seems to work is to use composition rather than inheritance as in the
+following code fragment.</P
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>class FilePreview(QFilePreview):
+ pass
+
+class Preview(QLabel):
+ def __init__(self, parent=None):
+ QLabel.__init__(self, parent)
+ self.preview = FilePreview()
+ self.preview.previewUrl = self.previewUrl</PRE
+></TD
+></TR
+></TABLE
+><P
+>Note that QFilePreview cannot be instantiated directly because it is abstract.
+Thanks to Hans-Peter Jansen for this trick.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1331"
+>QFileInfo</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QFileInfo</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1335"
+>QFont</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QFont</TT
+> is fully implemented, including the Python
+<TT
+CLASS="LITERAL"
+>==</TT
+> and <TT
+CLASS="LITERAL"
+>!=</TT
+> operators.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1341"
+>QFontDatabase (Qt v2.1+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QFontDatabase</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1345"
+>QFontDialog (Qt v2+)</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN1347"
+></A
+><CODE
+CLASS="FUNCDEF"
+>static QFont getFont</CODE
+>(bool *ok, const QFont &#38;def, QWidget *parent = 0, const char *name = 0);<P
+></P
+></DIV
+><P
+>This takes the <TT
+CLASS="LITERAL"
+>def</TT
+>, <TT
+CLASS="LITERAL"
+>parent</TT
+> and
+<TT
+CLASS="LITERAL"
+>name</TT
+> parameters and returns a tuple containing the
+<TT
+CLASS="LITERAL"
+>QFont</TT
+> result and the <TT
+CLASS="LITERAL"
+>ok</TT
+> value.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN1364"
+></A
+><CODE
+CLASS="FUNCDEF"
+>static QFont getFont</CODE
+>(bool *ok, QWidget *parent = 0, const char *name = 0);<P
+></P
+></DIV
+><P
+>This takes the <TT
+CLASS="LITERAL"
+>parent</TT
+> and <TT
+CLASS="LITERAL"
+>name</TT
+> parameters
+and returns a tuple containing the <TT
+CLASS="LITERAL"
+>QFont</TT
+> result and the
+<TT
+CLASS="LITERAL"
+>ok</TT
+> value.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1378"
+>QFontInfo</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QFontInfo</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1382"
+>QFontMetrics</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN1384"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QRect boundingRect</CODE
+>(int x, int y, int w, int h, int flags, const QString &amp;str, int len = -1, int tabstops = 0, int *tabarray = 0);<P
+></P
+></DIV
+><P
+>The <TT
+CLASS="LITERAL"
+>tabarray</TT
+> parameter is a Python list of integers.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN1407"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QSize size</CODE
+>(int flags, const QString &amp;str, int len = -1, int tabstops = 0, int *tabarray = 0);<P
+></P
+></DIV
+><P
+>The <TT
+CLASS="LITERAL"
+>tabarray</TT
+> parameter is a Python list of integers.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1422"
+>QFrame</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QFrame</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1426"
+>QGManager (Qt v1.x)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QGManager</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1430"
+>QChain (Qt v1.x)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QChain</TT
+> is implemented as an opaque class.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1434"
+>QGrid (Qt v2+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QGrid</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1438"
+>QGridView (Qt v3+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QGridView</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1442"
+>QGroupBox</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QGroupBox</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1446"
+>QHBox (Qt v2+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QHBox</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1450"
+>QHButtonGroup (Qt v2+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QHButtonGroup</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1454"
+>QHeader</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QHeader</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1458"
+>QHGroupBox (Qt v2+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QHGroupBox</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1462"
+>QIconSet</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QIconSet</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1466"
+>QIconFactory (Qt v3.1+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QIconFactory</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1470"
+>QIconView (Qt v2.1+)</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN1472"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QIconViewItem *makeRowLayout</CODE
+>(QIconViewItem *begin, int &#38;y);<P
+></P
+></DIV
+><P
+>Not yet implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1480"
+>QIconViewItem (Qt v2.1+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QIconViewItem</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1484"
+>QIconDrag (Qt v2.1+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QIconDrag</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1488"
+>QIconDragItem (Qt v2.1+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QIconDragItem</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1492"
+>QImage</A
+></H3
+><P
+>The Python <TT
+CLASS="LITERAL"
+>==</TT
+> and <TT
+CLASS="LITERAL"
+>!=</TT
+> operators are
+supported.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN1497"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QImage</CODE
+>(const char *xpm[]);<P
+></P
+></DIV
+><P
+>This takes a list of strings as its parameter.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN1503"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QImage</CODE
+>(uchar *data, int w, int h, int depth, QRgb *colorTable, int numColors, Endian bitOrder);<P
+></P
+></DIV
+><P
+>The <TT
+CLASS="LITERAL"
+>colorTable</TT
+> parameter is a list of QRgb instances or
+None. (Qt v2.1+)</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN1522"
+></A
+><CODE
+CLASS="FUNCDEF"
+>uchar *bits</CODE
+>();<P
+></P
+></DIV
+><P
+>The return value is a <TT
+CLASS="LITERAL"
+>sip.voidptr</TT
+> object which is only
+useful if passed to another Python module.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN1528"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QRgb *colorTable</CODE
+>();<P
+></P
+></DIV
+><P
+>The return value is a <TT
+CLASS="LITERAL"
+>sip.voidptr</TT
+> object which is only
+useful if passed to another Python module.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN1534"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QImage convertDepthWithPalette</CODE
+>(int, QRgb *p, int pc, int cf = 0);<P
+></P
+></DIV
+><P
+>Not implemented.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN1545"
+></A
+><CODE
+CLASS="FUNCDEF"
+>uchar **jumpTable</CODE
+>();<P
+></P
+></DIV
+><P
+>The return value is a <TT
+CLASS="LITERAL"
+>sip.voidptr</TT
+> object which is only
+useful if passed to another Python module.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN1551"
+></A
+><CODE
+CLASS="FUNCDEF"
+>bool loadFromData</CODE
+>(const uchar *buf, uint len, const char *format = 0, ColorMode mode = Auto);<P
+></P
+></DIV
+><P
+><TT
+CLASS="LITERAL"
+>len</TT
+> is derived from <TT
+CLASS="LITERAL"
+>buf</TT
+> and not passed as
+a parameter.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN1565"
+></A
+><CODE
+CLASS="FUNCDEF"
+>uchar *scanLine</CODE
+>(int i);<P
+></P
+></DIV
+><P
+>The return value is a <TT
+CLASS="LITERAL"
+>sip.voidptr</TT
+> object which is only
+useful if passed to another Python module.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1572"
+>QImageIO</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN1574"
+></A
+><CODE
+CLASS="FUNCDEF"
+>static void defineIOHandler</CODE
+>(const char *format, const char *header, const char *flags, image_io_handler read_image, image_io_handler write_image);<P
+></P
+></DIV
+><P
+>Not implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1588"
+>QImageTextKeyLang</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QImageTextKeyLang</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1592"
+>QInputDialog (Qt v2.1+)</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN1594"
+></A
+><CODE
+CLASS="FUNCDEF"
+>static QString getText</CODE
+>(const QString &amp;caption, const QString &amp;label, const QString &amp;text = QString::null, bool *ok = 0, QWidget *parent = 0, const char *name = 0);<P
+></P
+></DIV
+><P
+>The <TT
+CLASS="LITERAL"
+>ok</TT
+> is not passed and the returned value is a tuple of
+the <TT
+CLASS="LITERAL"
+>QString</TT
+> result and the <TT
+CLASS="LITERAL"
+>ok</TT
+> flag.
+(Qt v2.1 - v2.3.1)</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN1613"
+></A
+><CODE
+CLASS="FUNCDEF"
+>static QString getText</CODE
+>(const QString &amp;caption, const QString &amp;label, QLineEdit::EchoModeecho, const QString &amp;text = QString::null, bool *ok = 0, QWidget *parent = 0, const char *name = 0);<P
+></P
+></DIV
+><P
+>The <TT
+CLASS="LITERAL"
+>ok</TT
+> is not passed and the returned value is a tuple of
+the <TT
+CLASS="LITERAL"
+>QString</TT
+> result and the <TT
+CLASS="LITERAL"
+>ok</TT
+> flag.
+(Qt v2.2 - v2.3.1)</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN1634"
+></A
+><CODE
+CLASS="FUNCDEF"
+>static QString getText</CODE
+>(const QString &amp;caption, const QString &amp;label, QLineEdit::EchoModeecho = QLineEdit::Normal, const QString &amp;text = QString::null, bool *ok = 0, QWidget *parent = 0, const char *name = 0);<P
+></P
+></DIV
+><P
+>The <TT
+CLASS="LITERAL"
+>ok</TT
+> is not passed and the returned value is a tuple of
+the <TT
+CLASS="LITERAL"
+>QString</TT
+> result and the <TT
+CLASS="LITERAL"
+>ok</TT
+> flag.
+(Qt v3+)</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN1655"
+></A
+><CODE
+CLASS="FUNCDEF"
+>static int getInteger</CODE
+>(const QString &amp;caption, const QString &amp;label, int num = 0, int from = -2147483647, int to = 2147483647, int step = 1, bool *ok = 0, QWidget *parent = 0, const char *name = 0);<P
+></P
+></DIV
+><P
+>The <TT
+CLASS="LITERAL"
+>ok</TT
+> is not passed and the returned value is a tuple of
+the <TT
+CLASS="LITERAL"
+>int</TT
+> result and the <TT
+CLASS="LITERAL"
+>ok</TT
+> flag.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN1680"
+></A
+><CODE
+CLASS="FUNCDEF"
+>static double getDouble</CODE
+>(const QString &amp;caption, const QString &amp;label, double num = 0, double from = -2147483647, double to = 2147483647, int step = 1, bool *ok = 0, QWidget *parent = 0, const char *name = 0);<P
+></P
+></DIV
+><P
+>The <TT
+CLASS="LITERAL"
+>ok</TT
+> is not passed and the returned value is a tuple of
+the <TT
+CLASS="LITERAL"
+>double</TT
+> result and the <TT
+CLASS="LITERAL"
+>ok</TT
+> flag.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN1705"
+></A
+><CODE
+CLASS="FUNCDEF"
+>static QString getItem</CODE
+>(const QString &amp;caption, const QString &amp;label, const QStringList &#38;list, int current = 0, bool editable = TRUE, bool *ok = 0, QWidget *parent = 0, const char *name = 0);<P
+></P
+></DIV
+><P
+>The <TT
+CLASS="LITERAL"
+>ok</TT
+> is not passed and the returned value is a tuple of
+the <TT
+CLASS="LITERAL"
+>QString</TT
+> result and the <TT
+CLASS="LITERAL"
+>ok</TT
+> flag.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1728"
+>QInterlaceStyle (Qt v2.3.1+)</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN1730"
+></A
+><CODE
+CLASS="FUNCDEF"
+>void scrollBarMetrics</CODE
+>(const QTabBar *sb, int &amp;sliderMin, int &amp;sliderMax, int &amp;sliderLength, int &amp;buttonDim);<P
+></P
+></DIV
+><P
+>This takes only the <TT
+CLASS="LITERAL"
+>sb</TT
+> parameter and returns a tuple of the
+<TT
+CLASS="LITERAL"
+>sliderMin</TT
+>, <TT
+CLASS="LITERAL"
+>sliderMax</TT
+>,
+<TT
+CLASS="LITERAL"
+>sliderLength</TT
+> and <TT
+CLASS="LITERAL"
+>buttonDim</TT
+> values.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1749"
+>QIODevice</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QIODevice</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1753"
+>QKeySequence (Qt v3+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QKeySequence</TT
+> is fully implemented including the operators
+<TT
+CLASS="LITERAL"
+>==</TT
+>, <TT
+CLASS="LITERAL"
+>!=</TT
+>, <TT
+CLASS="LITERAL"
+>QString()</TT
+> and
+<TT
+CLASS="LITERAL"
+>int()</TT
+>. A <TT
+CLASS="LITERAL"
+>QString</TT
+> instance or a Python
+integer may be used whenever a <TT
+CLASS="LITERAL"
+>QKeySequence</TT
+> can be used.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1763"
+>QLabel</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QLabel</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1767"
+>QLayout</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QLayout</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1771"
+>QBoxLayout</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QBoxLayout</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1775"
+>QGLayoutIterator (Qt v2+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QGLayoutIterator</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1779"
+>QGridLayout</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN1781"
+></A
+><CODE
+CLASS="FUNCDEF"
+>bool findWidget</CODE
+>(QWidget *w, int *row, int *col);<P
+></P
+></DIV
+><P
+>This takes the <TT
+CLASS="LITERAL"
+>w</TT
+> parameter and returns a tuple containing
+the <TT
+CLASS="LITERAL"
+>bool</TT
+> result, <TT
+CLASS="LITERAL"
+>row</TT
+> and
+<TT
+CLASS="LITERAL"
+>col</TT
+>. (Qt v2+)</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1795"
+>QHBoxLayout</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QHBoxLayout</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1799"
+>QLayoutItem (Qt v2+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QLayoutItem</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1803"
+>QLayoutIterator (Qt v2+)</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN1805"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QLayoutItem *next</CODE
+>();<P
+></P
+></DIV
+><P
+>This is a wrapper around the <TT
+CLASS="LITERAL"
+>QLayoutIterator</TT
+>
+<TT
+CLASS="LITERAL"
+>++</TT
+> operator.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1812"
+>QSpacerItem (Qt v2+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QSpacerItem</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1816"
+>QVBoxLayout</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QVBoxLayout</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1820"
+>QWidgetItem (Qt v2+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QWidgetItem</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1824"
+>QLCDNumber</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QLCDNumber</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1828"
+>QLibrary (Qt v3+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QLibrary</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1832"
+>QLineEdit</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN1834"
+></A
+><CODE
+CLASS="FUNCDEF"
+>int characterAt</CODE
+>(int xpos, QChar *chr);<P
+></P
+></DIV
+><P
+>This takes only the <TT
+CLASS="LITERAL"
+>xpos</TT
+> parameter and returns the int
+result and the <TT
+CLASS="LITERAL"
+>chr</TT
+> value as a tuple. (Qt v3+)</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN1844"
+></A
+><CODE
+CLASS="FUNCDEF"
+>void del</CODE
+>();<P
+></P
+></DIV
+><P
+>This has been renamed <TT
+CLASS="LITERAL"
+>delChar</TT
+> in Python. (Qt v2+)</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN1850"
+></A
+><CODE
+CLASS="FUNCDEF"
+>bool getSelection</CODE
+>(int *start, int *end);<P
+></P
+></DIV
+><P
+>This takes no parameters and returns the bool result and the
+<TT
+CLASS="LITERAL"
+>start</TT
+> and <TT
+CLASS="LITERAL"
+>end</TT
+> values as a tuple.
+(Qt v3+)</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1860"
+>QList&lt;type&gt; (Qt v2)</A
+></H3
+><P
+>Types based on the <TT
+CLASS="LITERAL"
+>QList</TT
+> template are automatically
+converted to and from Python lists of the type.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1864"
+>QListBox</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN1866"
+></A
+><CODE
+CLASS="FUNCDEF"
+>bool itemYPos</CODE
+>(int index, int *yPos);<P
+></P
+></DIV
+><P
+>This takes the <TT
+CLASS="LITERAL"
+>index</TT
+> parameter and returns a tuple
+containing the <TT
+CLASS="LITERAL"
+>bool</TT
+> result and <TT
+CLASS="LITERAL"
+>yPos</TT
+>.
+(Qt v1.x)</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1877"
+>QListBoxItem</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QListBoxItem</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1881"
+>QListBoxPixmap</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QListBoxPixmap</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1885"
+>QListBoxText</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QListBoxText</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1889"
+>QListView</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QListView</TT
+> is fully implemented.</P
+><P
+>Note that to remove a child <TT
+CLASS="LITERAL"
+>QListViewItem</TT
+> you must first
+call <TT
+CLASS="LITERAL"
+>takeItem()</TT
+> and then <TT
+CLASS="LITERAL"
+>del()</TT
+>.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1897"
+>QListViewItem</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QListViewItem</TT
+> is fully implemented.</P
+><P
+>Note that to remove a child <TT
+CLASS="LITERAL"
+>QListViewItem</TT
+> you must first
+call <TT
+CLASS="LITERAL"
+>takeItem()</TT
+> and then <TT
+CLASS="LITERAL"
+>del()</TT
+>.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1905"
+>QCheckListItem</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QCheckListItem</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1909"
+>QListViewItemIterator (Qt v2+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QListViewItemIterator</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1913"
+>QLocale (Qt v3.3+)</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN1915"
+></A
+><CODE
+CLASS="FUNCDEF"
+>short toShort</CODE
+>(bool *ok = 0);<P
+></P
+></DIV
+><P
+>This returns a tuple of the <TT
+CLASS="LITERAL"
+>short</TT
+> result and the
+<TT
+CLASS="LITERAL"
+>ok</TT
+> value.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN1923"
+></A
+><CODE
+CLASS="FUNCDEF"
+>ushort toUShort</CODE
+>(bool *ok = 0);<P
+></P
+></DIV
+><P
+>This returns a tuple of the <TT
+CLASS="LITERAL"
+>ushort</TT
+> result and the
+<TT
+CLASS="LITERAL"
+>ok</TT
+> value.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN1931"
+></A
+><CODE
+CLASS="FUNCDEF"
+>int toInt</CODE
+>(bool *ok = 0);<P
+></P
+></DIV
+><P
+>This returns a tuple of the <TT
+CLASS="LITERAL"
+>int</TT
+> result and the
+<TT
+CLASS="LITERAL"
+>ok</TT
+> value.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN1939"
+></A
+><CODE
+CLASS="FUNCDEF"
+>uint toUInt</CODE
+>(bool *ok = 0);<P
+></P
+></DIV
+><P
+>This returns a tuple of the <TT
+CLASS="LITERAL"
+>uint</TT
+> result and the
+<TT
+CLASS="LITERAL"
+>ok</TT
+> value.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN1947"
+></A
+><CODE
+CLASS="FUNCDEF"
+>Q_LONG toLong</CODE
+>(bool *ok = 0);<P
+></P
+></DIV
+><P
+>This returns a tuple of the <TT
+CLASS="LITERAL"
+>long</TT
+> result and the
+<TT
+CLASS="LITERAL"
+>ok</TT
+> value.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN1955"
+></A
+><CODE
+CLASS="FUNCDEF"
+>Q_ULONG toULong</CODE
+>(bool *ok = 0);<P
+></P
+></DIV
+><P
+>This returns a tuple of the <TT
+CLASS="LITERAL"
+>ulong</TT
+> result and the
+<TT
+CLASS="LITERAL"
+>ok</TT
+> value.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN1963"
+></A
+><CODE
+CLASS="FUNCDEF"
+>float toFloat</CODE
+>(bool *ok = 0);<P
+></P
+></DIV
+><P
+>This returns a tuple of the <TT
+CLASS="LITERAL"
+>float</TT
+> result and the
+<TT
+CLASS="LITERAL"
+>ok</TT
+> value.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN1971"
+></A
+><CODE
+CLASS="FUNCDEF"
+>double toDouble</CODE
+>(bool *ok = 0);<P
+></P
+></DIV
+><P
+>This returns a tuple of the <TT
+CLASS="LITERAL"
+>double</TT
+> result and the
+<TT
+CLASS="LITERAL"
+>ok</TT
+> value.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN1979"
+>QMainWindow</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN1981"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QTextStream &amp;operator&lt;&lt;</CODE
+>(QTextStream &amp;, const QMainWindow &amp;);<P
+></P
+></DIV
+><P
+>This operator is fully implemented. (Qt v3+)</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN1989"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QTextStream &amp;operator&gt;&gt;</CODE
+>(QTextStream &amp;, QMainWindow &amp;);<P
+></P
+></DIV
+><P
+>This operator is fully implemented. (Qt v3+)</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN1997"
+></A
+><CODE
+CLASS="FUNCDEF"
+>bool getLocation</CODE
+>(QToolBar *tb, ToolBarDock &amp;dock, int &amp;index, bool &amp;nl, int &amp;extraOffset);<P
+></P
+></DIV
+><P
+>This takes only the <TT
+CLASS="LITERAL"
+>tb</TT
+> parameter and returns a tuple of the
+result, <TT
+CLASS="LITERAL"
+>dock</TT
+>, <TT
+CLASS="LITERAL"
+>index</TT
+>,
+<TT
+CLASS="LITERAL"
+>nl</TT
+> and <TT
+CLASS="LITERAL"
+>extraOffset</TT
+> values. (Qt v2.1.0+)</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN2016"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QList&lt;QToolBar&gt; toolBars</CODE
+>(ToolBarDock dock);<P
+></P
+></DIV
+><P
+>This returns a list of <TT
+CLASS="LITERAL"
+>QToolBar</TT
+> instances. (Qt v2.1.0+)</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN2023"
+>QMemArray&lt;type&gt; (Qt v3+)</A
+></H3
+><P
+>Types based on the <TT
+CLASS="LITERAL"
+>QMemArray</TT
+> template are automatically
+converted to and from Python lists of the type.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN2027"
+>QMenuBar</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QMenuBar</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN2031"
+>QMenuData</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN2033"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QMenuItem *findItem</CODE
+>(int id, QMenuData **parent);<P
+></P
+></DIV
+><P
+>Not implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN2041"
+>QCustomMenuItem (Qt v2.1+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QCustomMenuItem</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN2045"
+>QMenuItem</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QMenuItem</TT
+> is an internal Qt class.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN2049"
+>QMessageBox</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QMessageBox</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN2053"
+>QMetaObject</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN2055"
+></A
+><CODE
+CLASS="FUNCDEF"
+>int numClassInfo const</CODE
+>(bool super = FALSE);<P
+></P
+></DIV
+><P
+>Not implemented.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN2061"
+></A
+><CODE
+CLASS="FUNCDEF"
+>const QClassInfo *classInfo const</CODE
+>(bool super = FALSE);<P
+></P
+></DIV
+><P
+>Not implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN2067"
+>QMetaProperty</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QMetaProperty</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN2071"
+>QMimeSource (Qt v2+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QMimeSource</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN2075"
+>QMimeSourceFactory (Qt v2+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QMimeSourceFactory</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN2079"
+>QWindowsMime (Qt v3+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QWindowsMime</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN2083"
+>QMotifPlusStyle (Qt v2.2+)</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN2085"
+></A
+><CODE
+CLASS="FUNCDEF"
+>void getButtonShift</CODE
+>(int &amp;x, int &amp;y);<P
+></P
+></DIV
+><P
+>This takes no parameters and returns a tuple of the <TT
+CLASS="LITERAL"
+>x</TT
+> and
+<TT
+CLASS="LITERAL"
+>y</TT
+> values. (Qt v2)</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN2095"
+></A
+><CODE
+CLASS="FUNCDEF"
+>void scrollBarMetrics</CODE
+>(const QScrollBar *sb, int &amp;sliderMin, int &amp;sliderMax, int &amp;sliderLength, int &amp;buttonDim);<P
+></P
+></DIV
+><P
+>This takes only the <TT
+CLASS="LITERAL"
+>sb</TT
+> parameter and returns a tuple of the
+<TT
+CLASS="LITERAL"
+>sliderMin</TT
+>, <TT
+CLASS="LITERAL"
+>sliderMax</TT
+>,
+<TT
+CLASS="LITERAL"
+>sliderLength</TT
+> and <TT
+CLASS="LITERAL"
+>buttonDim</TT
+> values.
+(Qt v2)</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN2114"
+>QMotifStyle (Qt v2+)</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN2116"
+></A
+><CODE
+CLASS="FUNCDEF"
+>void scrollBarMetrics</CODE
+>(const QTabBar *sb, int &#38;sliderMin, int &#38;sliderMax, int &#38;sliderLength, int &#38;buttonDim);<P
+></P
+></DIV
+><P
+>This takes only the <TT
+CLASS="LITERAL"
+>sb</TT
+> parameter and returns a tuple of the
+<TT
+CLASS="LITERAL"
+>sliderMin</TT
+>, <TT
+CLASS="LITERAL"
+>sliderMax</TT
+>,
+<TT
+CLASS="LITERAL"
+>sliderLength</TT
+> and <TT
+CLASS="LITERAL"
+>buttonDim</TT
+> values.
+(Qt v2)</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN2135"
+></A
+><CODE
+CLASS="FUNCDEF"
+>void tabbarMetrics</CODE
+>(const QTabBar *t, int &#38;hframe, int &#38;vframe, int &#38;overlap);<P
+></P
+></DIV
+><P
+>This takes only the <TT
+CLASS="LITERAL"
+>t</TT
+> parameter and returns a tuple of the
+<TT
+CLASS="LITERAL"
+>hframe</TT
+>, <TT
+CLASS="LITERAL"
+>vframe</TT
+> and
+<TT
+CLASS="LITERAL"
+>overlap</TT
+> values. (Qt v2)</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN2151"
+>QMovie</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN2153"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QMovie</CODE
+>(QDataSource *src, int bufsize = 1024);<P
+></P
+></DIV
+><P
+>Not implemented.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN2161"
+></A
+><CODE
+CLASS="FUNCDEF"
+>void pushData</CODE
+>(const uchar *data, int length);<P
+></P
+></DIV
+><P
+><TT
+CLASS="LITERAL"
+>length</TT
+> is derived from <TT
+CLASS="LITERAL"
+>data</TT
+> and not
+passed as a parameter. (Qt v2.2.0+)</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN2171"
+>QMultiLineEdit</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN2173"
+></A
+><CODE
+CLASS="FUNCDEF"
+>void cursorPosition const</CODE
+>(int *line, int *col);<P
+></P
+></DIV
+><P
+>This takes no parameters and returns a tuple of the <TT
+CLASS="LITERAL"
+>line</TT
+> and
+<TT
+CLASS="LITERAL"
+>col</TT
+> values. (Qt v1.x, Qt v2.x)</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN2183"
+></A
+><CODE
+CLASS="FUNCDEF"
+>virtual void del</CODE
+>();<P
+></P
+></DIV
+><P
+>This has been renamed <TT
+CLASS="LITERAL"
+>delChar</TT
+> in Python. (Qt v1.x, Qt v2.x)</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN2189"
+></A
+><CODE
+CLASS="FUNCDEF"
+>void getCursorPosition const</CODE
+>(int *line, int *col);<P
+></P
+></DIV
+><P
+>This takes no parameters and returns a tuple of the <TT
+CLASS="LITERAL"
+>line</TT
+> and
+<TT
+CLASS="LITERAL"
+>col</TT
+> values. (Qt v1.x, Qt v2.x)</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN2199"
+></A
+><CODE
+CLASS="FUNCDEF"
+>bool getMarkedRegion</CODE
+>(int *line1, int *col1, int *line2, int *col2);<P
+></P
+></DIV
+><P
+>This takes no parameters and returns a tuple of the bool result and the
+<TT
+CLASS="LITERAL"
+>line1</TT
+>, <TT
+CLASS="LITERAL"
+>col1</TT
+>, <TT
+CLASS="LITERAL"
+>line2</TT
+> and
+<TT
+CLASS="LITERAL"
+>col2</TT
+> values.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN2215"
+>QMutex (Qt v2.2+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QMutex</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN2219"
+>QMutexLocker (Qt v3.1+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QMutexLocker</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN2223"
+>QNetworkOperation (Qt v2.1+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QNetworkOperation</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN2227"
+>QNetworkProtocol (Qt v2.1+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QNetworkProtocol</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN2231"
+>QNetworkProtocolFactoryBase (Qt v2.1+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QNetworkProtocolFactoryBase</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN2235"
+>QObject</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN2237"
+></A
+><CODE
+CLASS="FUNCDEF"
+>bool disconnect</CODE
+>(const QObject *receiver, const char *member = 0);<P
+></P
+></DIV
+><P
+>Not yet implemented.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN2245"
+></A
+><CODE
+CLASS="FUNCDEF"
+>bool disconnect</CODE
+>(const char *signal = 0, const QObject *receiver = 0, const char *member = 0);<P
+></P
+></DIV
+><P
+>Not yet implemented.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN2255"
+></A
+><CODE
+CLASS="FUNCDEF"
+>static bool disconnect</CODE
+>(const QObject *sender, const char *signal, const QObject *receiver, const char *member);<P
+></P
+></DIV
+><P
+>At the moment PyQt does not support the full behaviour of the corresponding Qt
+method. In particular, specifying None (ie. 0 in C++) for the
+<TT
+CLASS="LITERAL"
+>signal</TT
+> and <TT
+CLASS="LITERAL"
+>receiver</TT
+> parameters is not yet
+supported.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN2269"
+>QObjectCleanupHandler (Qt v3+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QObjectCleanupHandler</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN2273"
+>QObjectList</A
+></H3
+><P
+>This class isn't implemented. Whenever a <TT
+CLASS="LITERAL"
+>QObjectList</TT
+> is the
+return type of a function or the type of an argument, a Python list of
+<TT
+CLASS="LITERAL"
+>QObject</TT
+> instances is used instead.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN2278"
+>QPaintDeviceMetrics</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QPaintDeviceMetrics</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN2282"
+>QPaintDevice</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN2284"
+></A
+><CODE
+CLASS="FUNCDEF"
+>virtual bool cmd</CODE
+>(int, QPainter *, QPDevCmdParam *);<P
+></P
+></DIV
+><P
+>Not implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN2291"
+>QPainter</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN2293"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QRect boundingRect</CODE
+>(int x, int y, int w, int h, int flags, const char *str, int len = -1, char **intern = 0);<P
+></P
+></DIV
+><P
+>The <TT
+CLASS="LITERAL"
+>intern</TT
+> parameter is not supported.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN2314"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QRect boundingRect</CODE
+>(const QRect&#38;, int flags, const char *str, int len = -1, char **intern = 0);<P
+></P
+></DIV
+><P
+>The <TT
+CLASS="LITERAL"
+>intern</TT
+> parameter is not supported.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN2328"
+></A
+><CODE
+CLASS="FUNCDEF"
+>void drawText</CODE
+>(int x, int y, int w, int h, int flags, const char *str, int len = -1, QRect *br = 0, char **intern = 0);<P
+></P
+></DIV
+><P
+>The <TT
+CLASS="LITERAL"
+>intern</TT
+> parameter is not supported.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN2351"
+></A
+><CODE
+CLASS="FUNCDEF"
+>void drawText</CODE
+>(const QRect&#38;, int flags, const char *str, int len = -1, QRect *br = 0, char **intern = 0);<P
+></P
+></DIV
+><P
+>The <TT
+CLASS="LITERAL"
+>intern</TT
+> parameter is not supported.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN2367"
+></A
+><CODE
+CLASS="FUNCDEF"
+>void setTabArray</CODE
+>(int *ta);<P
+></P
+></DIV
+><P
+>This takes a single parameter which is a list of tab stops.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN2373"
+></A
+><CODE
+CLASS="FUNCDEF"
+>int *tabArray</CODE
+>();<P
+></P
+></DIV
+><P
+>This returns a list of tab stops.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN2378"
+>QPalette</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QPalette</TT
+> is fully implemented, including the Python
+<TT
+CLASS="LITERAL"
+>==</TT
+> and <TT
+CLASS="LITERAL"
+>!=</TT
+> operators.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN2384"
+>QPixmap</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN2386"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QPixmap</CODE
+>(const char *xpm[]);<P
+></P
+></DIV
+><P
+>This takes a list of strings as its parameter.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN2392"
+></A
+><CODE
+CLASS="FUNCDEF"
+>bool loadFromData</CODE
+>(const uchar *buf, uint len, const char *format = 0, ColorMode mode = Auto);<P
+></P
+></DIV
+><P
+><TT
+CLASS="LITERAL"
+>len</TT
+> is derived from <TT
+CLASS="LITERAL"
+>buf</TT
+> and not passed as
+a parameter.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN2406"
+></A
+><CODE
+CLASS="FUNCDEF"
+>bool loadFromData</CODE
+>(const uchar *buf, uint len, const char *format, int conversion_flags);<P
+></P
+></DIV
+><P
+>Not implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN2418"
+>QPixmapCache (Qt v3+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QPixmapCache</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN2422"
+>QPair&lt;type,type&gt; (Qt v3+)</A
+></H3
+><P
+>Types based on the <TT
+CLASS="LITERAL"
+>QPair</TT
+> template are automatically
+converted to and from Python tuples of two elements.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN2426"
+>QPen</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QPen</TT
+> is fully implemented, including the Python
+<TT
+CLASS="LITERAL"
+>==</TT
+> and <TT
+CLASS="LITERAL"
+>!=</TT
+> operators.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN2432"
+>QPicture</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN2434"
+></A
+><CODE
+CLASS="FUNCDEF"
+>const char *data</CODE
+>();<P
+></P
+></DIV
+><P
+>Not implemented.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN2439"
+></A
+><CODE
+CLASS="FUNCDEF"
+>void setData</CODE
+>(const char *data, uint size);<P
+></P
+></DIV
+><P
+><TT
+CLASS="LITERAL"
+>size</TT
+> is derived from <TT
+CLASS="LITERAL"
+>data</TT
+> and not passed
+as a parameter.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN2449"
+>QPlatinumStyle (Qt v2+)</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN2451"
+></A
+><CODE
+CLASS="FUNCDEF"
+>void scrollBarMetrics</CODE
+>(const QTabBar *sb, int &#38;sliderMin, int &#38;sliderMax, int &#38;sliderLength, int &#38;buttonDim);<P
+></P
+></DIV
+><P
+>This takes only the <TT
+CLASS="LITERAL"
+>sb</TT
+> parameter and returns a tuple of the
+<TT
+CLASS="LITERAL"
+>sliderMin</TT
+>, <TT
+CLASS="LITERAL"
+>sliderMax</TT
+>,
+<TT
+CLASS="LITERAL"
+>sliderLength</TT
+> and <TT
+CLASS="LITERAL"
+>buttonDim</TT
+> values.
+(Qt v2)</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN2470"
+>QPoint</A
+></H3
+><P
+>The Python
+<TT
+CLASS="LITERAL"
+>+</TT
+>, <TT
+CLASS="LITERAL"
+>+=</TT
+>,
+<TT
+CLASS="LITERAL"
+>-</TT
+>, <TT
+CLASS="LITERAL"
+>-=</TT
+>, unary <TT
+CLASS="LITERAL"
+>-</TT
+>,
+<TT
+CLASS="LITERAL"
+>*</TT
+>, <TT
+CLASS="LITERAL"
+>*=</TT
+>,
+<TT
+CLASS="LITERAL"
+>/</TT
+>, <TT
+CLASS="LITERAL"
+>/=</TT
+>,
+<TT
+CLASS="LITERAL"
+>==</TT
+>, <TT
+CLASS="LITERAL"
+>!=</TT
+> and <TT
+CLASS="LITERAL"
+>__nonzero__</TT
+>
+operators are supported.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN2485"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QCOORD &amp;rx</CODE
+>();<P
+></P
+></DIV
+><P
+>Not implemented.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN2490"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QCOORD &amp;ry</CODE
+>();<P
+></P
+></DIV
+><P
+>Not implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN2495"
+>QPointArray</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN2497"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QPointArray</CODE
+>(int nPoints, const QCOORD *points);<P
+></P
+></DIV
+><P
+>This takes a single parameter which is a list of points.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN2505"
+></A
+><CODE
+CLASS="FUNCDEF"
+>void point</CODE
+>(uint i, int *x, int *y);<P
+></P
+></DIV
+><P
+>This takes the single parameter <TT
+CLASS="LITERAL"
+>i</TT
+> and returns the
+<TT
+CLASS="LITERAL"
+>x</TT
+> and <TT
+CLASS="LITERAL"
+>y</TT
+> values as a tuple.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN2518"
+></A
+><CODE
+CLASS="FUNCDEF"
+>bool putPoints</CODE
+>(int index, int nPoints, const QCOORD *points);<P
+></P
+></DIV
+><P
+>This takes two parameters, <TT
+CLASS="LITERAL"
+>index</TT
+> and a list of points.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN2529"
+></A
+><CODE
+CLASS="FUNCDEF"
+>bool putPoints</CODE
+>(int index, int nPoints, int firstx, int firsty, ...);<P
+></P
+></DIV
+><P
+>Not implemented.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN2542"
+></A
+><CODE
+CLASS="FUNCDEF"
+>bool setPoints</CODE
+>(int nPoints, const QCOORD *points);<P
+></P
+></DIV
+><P
+>This takes a single parameter which is a list of points.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN2550"
+></A
+><CODE
+CLASS="FUNCDEF"
+>bool setPoints</CODE
+>(int nPoints, int firstx, int firsty, ...);<P
+></P
+></DIV
+><P
+>Not implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN2561"
+>QPopupMenu</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN2563"
+></A
+><CODE
+CLASS="FUNCDEF"
+>int exec</CODE
+>();<P
+></P
+></DIV
+><P
+>This has been renamed <TT
+CLASS="LITERAL"
+>exec_loop</TT
+> in Python.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN2569"
+></A
+><CODE
+CLASS="FUNCDEF"
+>int exec</CODE
+>(const QPoint &#38;pos, int indexAtPoint = 0);<P
+></P
+></DIV
+><P
+>This has been renamed <TT
+CLASS="LITERAL"
+>exec_loop</TT
+> in Python.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN2578"
+>QPrintDialog (X11)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QPrintDialog</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN2582"
+>QPrinter</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QPrinter</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN2586"
+>QProcess (Qt v3+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QProcess</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN2590"
+>QProgressBar</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QProgressBar</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN2594"
+>QProgressDialog</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QProgressDialog</TT
+> is fully implemented.
+value.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN2598"
+>QPtrList&lt;type&gt; (Qt v3+)</A
+></H3
+><P
+>Types based on the <TT
+CLASS="LITERAL"
+>QPtrList</TT
+> template are automatically
+converted to and from Python lists of the type.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN2602"
+>QPushButton</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QPushButton</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN2606"
+>QRadioButton</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QRadioButton</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN2610"
+>QRangeControl</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QRangeControl</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN2614"
+>QRect</A
+></H3
+><P
+>The Python
+<TT
+CLASS="LITERAL"
+>&amp;</TT
+>, <TT
+CLASS="LITERAL"
+>&amp;=</TT
+>,
+<TT
+CLASS="LITERAL"
+>|</TT
+>, <TT
+CLASS="LITERAL"
+>|=</TT
+>,
+<TT
+CLASS="LITERAL"
+>==</TT
+>, <TT
+CLASS="LITERAL"
+>!=</TT
+>, <TT
+CLASS="LITERAL"
+>in</TT
+> and
+<TT
+CLASS="LITERAL"
+>__nonzero__</TT
+> operators are supported.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN2625"
+></A
+><CODE
+CLASS="FUNCDEF"
+>void coords</CODE
+>(int *x1, int *y1, int *x2, int *y2);<P
+></P
+></DIV
+><P
+>This takes no parameters and returns a tuple containing the four values.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN2637"
+></A
+><CODE
+CLASS="FUNCDEF"
+>void rect</CODE
+>(int *x, int *y, int *w, int *h);<P
+></P
+></DIV
+><P
+>This takes no parameters and returns a tuple containing the four values.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN2649"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QCOORD &amp;rBottom</CODE
+>();<P
+></P
+></DIV
+><P
+>Not implemented. (Qt v2+)</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN2654"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QCOORD &amp;rLeft</CODE
+>();<P
+></P
+></DIV
+><P
+>Not implemented. (Qt v2+)</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN2659"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QCOORD &amp;rRight</CODE
+>();<P
+></P
+></DIV
+><P
+>Not implemented. (Qt v2+)</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN2664"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QCOORD &amp;rTop</CODE
+>();<P
+></P
+></DIV
+><P
+>Not implemented. (Qt v2+)</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN2669"
+>QRegExp</A
+></H3
+><P
+>The Python <TT
+CLASS="LITERAL"
+>==</TT
+> and <TT
+CLASS="LITERAL"
+>!=</TT
+> operators are
+supported.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN2674"
+></A
+><CODE
+CLASS="FUNCDEF"
+>int match</CODE
+>(const char *str, int index = 0, int *len = 0);<P
+></P
+></DIV
+><P
+>This takes <TT
+CLASS="LITERAL"
+>str</TT
+> and <TT
+CLASS="LITERAL"
+>index</TT
+> parameters and
+returns a tuple of the <TT
+CLASS="LITERAL"
+>int</TT
+> result and the
+<TT
+CLASS="LITERAL"
+>len</TT
+> value. (Qt v1.x)</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN2688"
+></A
+><CODE
+CLASS="FUNCDEF"
+>int match</CODE
+>(const QString &#38;str, int index = 0, int *len = 0);<P
+></P
+></DIV
+><P
+>This takes <TT
+CLASS="LITERAL"
+>str</TT
+> and <TT
+CLASS="LITERAL"
+>index</TT
+> parameters and
+returns a tuple of the <TT
+CLASS="LITERAL"
+>int</TT
+> result and the
+<TT
+CLASS="LITERAL"
+>len</TT
+> value. (Qt v2+)</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN2702"
+>QRegion</A
+></H3
+><P
+>The Python
+<TT
+CLASS="LITERAL"
+>|</TT
+>, <TT
+CLASS="LITERAL"
+>|=</TT
+>,
+<TT
+CLASS="LITERAL"
+>+</TT
+>, <TT
+CLASS="LITERAL"
+>+=</TT
+>,
+<TT
+CLASS="LITERAL"
+>&amp;</TT
+>, <TT
+CLASS="LITERAL"
+>&amp;=</TT
+>,
+<TT
+CLASS="LITERAL"
+>-</TT
+>, <TT
+CLASS="LITERAL"
+>-=</TT
+>,
+<TT
+CLASS="LITERAL"
+>^</TT
+>, <TT
+CLASS="LITERAL"
+>^=</TT
+>,
+<TT
+CLASS="LITERAL"
+>==</TT
+>, <TT
+CLASS="LITERAL"
+>!=</TT
+>, <TT
+CLASS="LITERAL"
+>in</TT
+> and
+<TT
+CLASS="LITERAL"
+>__nonzero__</TT
+> operators are supported.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN2719"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QArray&lt;QRect&gt; rects</CODE
+>();<P
+></P
+></DIV
+><P
+>Not implemented.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN2724"
+></A
+><CODE
+CLASS="FUNCDEF"
+>void setRects</CODE
+>(QRect *rects, int num);<P
+></P
+></DIV
+><P
+>Not yet implemented. (Qt v2.2+)</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN2732"
+>QScrollBar</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QScrollBar</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN2736"
+>QScrollView</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN2738"
+></A
+><CODE
+CLASS="FUNCDEF"
+>void contentsToViewport</CODE
+>(int x, int y, int &#38;vx, int &#38;vy);<P
+></P
+></DIV
+><P
+>This takes the <TT
+CLASS="LITERAL"
+>x</TT
+> and <TT
+CLASS="LITERAL"
+>y</TT
+> parameters and
+returns a tuple containing the <TT
+CLASS="LITERAL"
+>vx</TT
+> and <TT
+CLASS="LITERAL"
+>vy</TT
+>
+values. (Qt v2+)</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN2754"
+></A
+><CODE
+CLASS="FUNCDEF"
+>void viewportToContents</CODE
+>(int vx, int vy, int &#38;x, int &#38;y);<P
+></P
+></DIV
+><P
+>This takes the <TT
+CLASS="LITERAL"
+>vx</TT
+> and <TT
+CLASS="LITERAL"
+>vy</TT
+> parameters and
+returns a tuple containing the <TT
+CLASS="LITERAL"
+>x</TT
+> and <TT
+CLASS="LITERAL"
+>y</TT
+>
+values. (Qt v2+)</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN2770"
+>QSemaphore (Qt v2.2+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QSemaphore</TT
+> is fully implemented. The <TT
+CLASS="LITERAL"
+>+=</TT
+>
+and <TT
+CLASS="LITERAL"
+>-=</TT
+> operators have also been implemented, but require
+Python v2.0 or later.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN2776"
+>QSemiModal (Qt v1, v2)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QSemiModal</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN2780"
+>QSessionManager (Qt v2+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QSessionManager</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN2784"
+>QSettings (Qt v3+)</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN2786"
+></A
+><CODE
+CLASS="FUNCDEF"
+>bool readBoolEntry</CODE
+>(const QString &amp;key, bool def = 0, bool *ok = 0);<P
+></P
+></DIV
+><P
+>The <TT
+CLASS="LITERAL"
+>ok</TT
+> is not passed and the returned value is a tuple of
+the <TT
+CLASS="LITERAL"
+>bool</TT
+> result and the <TT
+CLASS="LITERAL"
+>ok</TT
+> flag.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN2799"
+></A
+><CODE
+CLASS="FUNCDEF"
+>double readDoubleEntry</CODE
+>(const QString &amp;key, double def = 0, bool *ok = 0);<P
+></P
+></DIV
+><P
+>The <TT
+CLASS="LITERAL"
+>ok</TT
+> is not passed and the returned value is a tuple of
+the <TT
+CLASS="LITERAL"
+>double</TT
+> result and the <TT
+CLASS="LITERAL"
+>ok</TT
+> flag.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN2812"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QString readEntry</CODE
+>(const QString &amp;key, const QString &amp;def = QString::null, bool *ok = 0);<P
+></P
+></DIV
+><P
+>The <TT
+CLASS="LITERAL"
+>ok</TT
+> is not passed and the returned value is a tuple of
+the <TT
+CLASS="LITERAL"
+>QString</TT
+> result and the <TT
+CLASS="LITERAL"
+>ok</TT
+> flag.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN2825"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QStringList readListEntry</CODE
+>(const QString &amp;key, bool *ok = 0);<P
+></P
+></DIV
+><P
+>The <TT
+CLASS="LITERAL"
+>ok</TT
+> is not passed and the returned value is a tuple of
+the <TT
+CLASS="LITERAL"
+>QStringList</TT
+> result and the <TT
+CLASS="LITERAL"
+>ok</TT
+> flag.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN2836"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QStringList readListEntry</CODE
+>(const QString &amp;key, const QChar &amp;separator, bool *ok = 0);<P
+></P
+></DIV
+><P
+>The <TT
+CLASS="LITERAL"
+>ok</TT
+> is not passed and the returned value is a tuple of
+the <TT
+CLASS="LITERAL"
+>QStringList</TT
+> result and the <TT
+CLASS="LITERAL"
+>ok</TT
+> flag.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN2849"
+></A
+><CODE
+CLASS="FUNCDEF"
+>int readNumEntry</CODE
+>(const QString &amp;key, int def = 0, bool *ok = 0);<P
+></P
+></DIV
+><P
+>The <TT
+CLASS="LITERAL"
+>ok</TT
+> is not passed and the returned value is a tuple of
+the <TT
+CLASS="LITERAL"
+>int</TT
+> result and the <TT
+CLASS="LITERAL"
+>ok</TT
+> flag.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN2862"
+></A
+><CODE
+CLASS="FUNCDEF"
+>bool writeEntry</CODE
+>(const QString &amp;key, bool value);<P
+></P
+></DIV
+><P
+>Not implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN2870"
+>QSGIStyle (Qt v2.2+)</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN2872"
+></A
+><CODE
+CLASS="FUNCDEF"
+>void scrollBarMetrics</CODE
+>(const QScrollBar *sb, int &amp;sliderMin, int &amp;sliderMax, int &amp;sliderLength, int &amp;buttonDim);<P
+></P
+></DIV
+><P
+>This takes only the <TT
+CLASS="LITERAL"
+>sb</TT
+> parameter and returns a tuple of the
+<TT
+CLASS="LITERAL"
+>sliderMin</TT
+>, <TT
+CLASS="LITERAL"
+>sliderMax</TT
+>,
+<TT
+CLASS="LITERAL"
+>sliderLength</TT
+> and <TT
+CLASS="LITERAL"
+>buttonDim</TT
+> values.
+(Qt v2)</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN2891"
+>QSignalMapper</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QSignalMapper</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN2895"
+>QSimpleRichText (Qt v2+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QSimpleRichText</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN2899"
+>QSize</A
+></H3
+><P
+>The Python
+<TT
+CLASS="LITERAL"
+>+</TT
+>, <TT
+CLASS="LITERAL"
+>+=</TT
+>,
+<TT
+CLASS="LITERAL"
+>-</TT
+>, <TT
+CLASS="LITERAL"
+>-=</TT
+>,
+<TT
+CLASS="LITERAL"
+>*</TT
+>, <TT
+CLASS="LITERAL"
+>*=</TT
+>,
+<TT
+CLASS="LITERAL"
+>/</TT
+>, <TT
+CLASS="LITERAL"
+>/=</TT
+>,
+<TT
+CLASS="LITERAL"
+>==</TT
+>, <TT
+CLASS="LITERAL"
+>!=</TT
+> and <TT
+CLASS="LITERAL"
+>__nonzero__</TT
+>
+operators are supported.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN2913"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QCOORD &amp;rheight</CODE
+>();<P
+></P
+></DIV
+><P
+>Not implemented.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN2918"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QCOORD &amp;rwidth</CODE
+>();<P
+></P
+></DIV
+><P
+>Not implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN2923"
+>QSizeGrip (Qt v2+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QSizeGrip</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN2927"
+>QSizePolicy (Qt v2+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QSizePolicy</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN2931"
+>QSlider</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QSlider</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN2935"
+>QSocketNotifier</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QSocketNotifier</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN2939"
+>QSound (Qt v2.2+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QSound</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN2943"
+>QSpinBox</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN2945"
+></A
+><CODE
+CLASS="FUNCDEF"
+>virtual int mapTextToValue</CODE
+>(bool *ok);<P
+></P
+></DIV
+><P
+>This returns a tuple of the <TT
+CLASS="LITERAL"
+>int</TT
+> result and the modified
+<TT
+CLASS="LITERAL"
+>ok</TT
+> value.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN2953"
+>QSplashScreen (Qt v3.2.0+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QSplashScreen</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN2957"
+>QSplitter</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN2959"
+></A
+><CODE
+CLASS="FUNCDEF"
+>void getRange</CODE
+>(int id, int *min, int *max);<P
+></P
+></DIV
+><P
+>This takes the <TT
+CLASS="LITERAL"
+>id</TT
+> parameter and returns the
+<TT
+CLASS="LITERAL"
+>min</TT
+> and <TT
+CLASS="LITERAL"
+>max</TT
+> values as a tuple. (Qt v2+)</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN2972"
+>QStatusBar</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QStatusBar</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN2976"
+>QChar (Qt v2+)</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN2978"
+></A
+><CODE
+CLASS="FUNCDEF"
+>uchar &#38;cell const</CODE
+>();<P
+></P
+></DIV
+><P
+>Not implemented.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN2983"
+></A
+><CODE
+CLASS="FUNCDEF"
+>uchar &#38;row const</CODE
+>();<P
+></P
+></DIV
+><P
+>Not implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN2988"
+>QString</A
+></H3
+><P
+>A Python string object (or Unicode object) can be used whenever a
+<TT
+CLASS="LITERAL"
+>QString</TT
+> can be used. A <TT
+CLASS="LITERAL"
+>QString</TT
+> can be
+converted to a Python string object using the Python <TT
+CLASS="LITERAL"
+>str()</TT
+>
+function, and to a Python Unicode object using the Python
+<TT
+CLASS="LITERAL"
+>unicode()</TT
+> function.</P
+><P
+>The Python <TT
+CLASS="LITERAL"
+>+=</TT
+>, <TT
+CLASS="LITERAL"
+>len</TT
+>, <TT
+CLASS="LITERAL"
+>[]</TT
+>
+(for reading slices and individual characters), <TT
+CLASS="LITERAL"
+>in</TT
+> and
+comparison operators are supported.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3000"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QCharRef at</CODE
+>(uint i);<P
+></P
+></DIV
+><P
+>Not yet implemented. (Qt v2+)</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3006"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QChar constref const</CODE
+>(uint i);<P
+></P
+></DIV
+><P
+>Not yet implemented. (Qt v2+)</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3012"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QChar &#38;ref</CODE
+>(uint i);<P
+></P
+></DIV
+><P
+>Not yet implemented. (Qt v2+)</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3018"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QString &#38;setUnicodeCodes</CODE
+>(const ushort *unicode_as_shorts, uint len);<P
+></P
+></DIV
+><P
+>Not yet implemented. (Qt v2.1+)</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3026"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QString &#38;sprintf</CODE
+>(const char *format, ...);<P
+></P
+></DIV
+><P
+>Not implemented.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3033"
+></A
+><CODE
+CLASS="FUNCDEF"
+>short toShort</CODE
+>(bool *ok = 0);<P
+></P
+></DIV
+><P
+>This returns a tuple of the <TT
+CLASS="LITERAL"
+>short</TT
+> result and the
+<TT
+CLASS="LITERAL"
+>ok</TT
+> value.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3041"
+></A
+><CODE
+CLASS="FUNCDEF"
+>ushort toUShort</CODE
+>(bool *ok = 0);<P
+></P
+></DIV
+><P
+>This returns a tuple of the <TT
+CLASS="LITERAL"
+>ushort</TT
+> result and the
+<TT
+CLASS="LITERAL"
+>ok</TT
+> value.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3049"
+></A
+><CODE
+CLASS="FUNCDEF"
+>int toInt</CODE
+>(bool *ok = 0);<P
+></P
+></DIV
+><P
+>This returns a tuple of the <TT
+CLASS="LITERAL"
+>int</TT
+> result and the
+<TT
+CLASS="LITERAL"
+>ok</TT
+> value.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3057"
+></A
+><CODE
+CLASS="FUNCDEF"
+>uint toUInt</CODE
+>(bool *ok = 0);<P
+></P
+></DIV
+><P
+>This returns a tuple of the <TT
+CLASS="LITERAL"
+>uint</TT
+> result and the
+<TT
+CLASS="LITERAL"
+>ok</TT
+> value.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3065"
+></A
+><CODE
+CLASS="FUNCDEF"
+>long toLong</CODE
+>(bool *ok = 0);<P
+></P
+></DIV
+><P
+>This returns a tuple of the <TT
+CLASS="LITERAL"
+>long</TT
+> result and the
+<TT
+CLASS="LITERAL"
+>ok</TT
+> value.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3073"
+></A
+><CODE
+CLASS="FUNCDEF"
+>ulong toULong</CODE
+>(bool *ok = 0);<P
+></P
+></DIV
+><P
+>This returns a tuple of the <TT
+CLASS="LITERAL"
+>ulong</TT
+> result and the
+<TT
+CLASS="LITERAL"
+>ok</TT
+> value.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3081"
+></A
+><CODE
+CLASS="FUNCDEF"
+>float toFloat</CODE
+>(bool *ok = 0);<P
+></P
+></DIV
+><P
+>This returns a tuple of the <TT
+CLASS="LITERAL"
+>float</TT
+> result and the
+<TT
+CLASS="LITERAL"
+>ok</TT
+> value.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3089"
+></A
+><CODE
+CLASS="FUNCDEF"
+>double toDouble</CODE
+>(bool *ok = 0);<P
+></P
+></DIV
+><P
+>This returns a tuple of the <TT
+CLASS="LITERAL"
+>double</TT
+> result and the
+<TT
+CLASS="LITERAL"
+>ok</TT
+> value.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3097"
+>QStringList (Qt v2+)</A
+></H3
+><P
+>The Python <TT
+CLASS="LITERAL"
+>len</TT
+>, <TT
+CLASS="LITERAL"
+>[]</TT
+> (for both reading and
+writing slices and individual elements), <TT
+CLASS="LITERAL"
+>del</TT
+> (for deleting
+slices and individual elements), <TT
+CLASS="LITERAL"
+>+</TT
+>, <TT
+CLASS="LITERAL"
+>+=</TT
+>,
+<TT
+CLASS="LITERAL"
+>*</TT
+>, <TT
+CLASS="LITERAL"
+>*=</TT
+>, <TT
+CLASS="LITERAL"
+>==</TT
+>,
+<TT
+CLASS="LITERAL"
+>!=</TT
+> and <TT
+CLASS="LITERAL"
+>in</TT
+> operators are supported.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3110"
+></A
+><CODE
+CLASS="FUNCDEF"
+>Iterator append</CODE
+>(const QString &#38;x);<P
+></P
+></DIV
+><P
+>This does not return a value.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3116"
+></A
+><CODE
+CLASS="FUNCDEF"
+>Iterator prepend</CODE
+>(const QString &#38;x);<P
+></P
+></DIV
+><P
+>This does not return a value.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3122"
+>QStrList</A
+></H3
+><P
+>This class isn't implemented. Whenever a <TT
+CLASS="LITERAL"
+>QStrList</TT
+> is the
+return type of a function or the type of an argument, a Python list of strings
+is used instead.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3126"
+>QStyle (Qt v2+)</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3128"
+></A
+><CODE
+CLASS="FUNCDEF"
+>virtual void getButtonShift</CODE
+>(int &amp;x, int &amp;y);<P
+></P
+></DIV
+><P
+>This takes no parameters and returns a tuple of the <TT
+CLASS="LITERAL"
+>x</TT
+> and
+<TT
+CLASS="LITERAL"
+>y</TT
+> values. (Qt v2)</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3138"
+></A
+><CODE
+CLASS="FUNCDEF"
+>virtual void scrollBarMetrics</CODE
+>(const QScrollBar *b, int &amp;sliderMin, int &amp;sliderMax, int &amp;sliderLength, int &amp;buttonDim);<P
+></P
+></DIV
+><P
+>Thus takes only the <TT
+CLASS="LITERAL"
+>b</TT
+> parameter and returns a tuple of the
+<TT
+CLASS="LITERAL"
+>sliderMin</TT
+>, <TT
+CLASS="LITERAL"
+>sliderMax</TT
+>,
+<TT
+CLASS="LITERAL"
+>sliderLength</TT
+> and <TT
+CLASS="LITERAL"
+>buttonDim</TT
+> values.
+(Qt v2)</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3157"
+></A
+><CODE
+CLASS="FUNCDEF"
+>virtual void tabbarMetrics</CODE
+>(const QTabBar *t, int &amp;hframe, int &amp;vframe, int &amp;overlap);<P
+></P
+></DIV
+><P
+>This takes only the <TT
+CLASS="LITERAL"
+>t</TT
+> parameter and returns a tuple of the
+<TT
+CLASS="LITERAL"
+>hframe</TT
+>, <TT
+CLASS="LITERAL"
+>vframe</TT
+> and
+<TT
+CLASS="LITERAL"
+>overlap</TT
+> values. (Qt v2)</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3173"
+>QStyleOption (Qt v3+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QStyleOption</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3177"
+>QStyleSheet (Qt v2+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QStyleSheet</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3181"
+>QStyleSheetItem (Qt v2+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QStyleSheetItem</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3185"
+>QSyntaxHighlighter (Qt v3.1+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QSyntaxHighlighter</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3189"
+>QTab</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QTab</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3193"
+>QTabBar</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3195"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QList&lt;QTab&gt; tabList</CODE
+>();<P
+></P
+></DIV
+><P
+>This returns a list of <TT
+CLASS="LITERAL"
+>QTab</TT
+> instances.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3201"
+>QTabDialog</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QTabDialog</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3205"
+>QTableView (Qt 1.x, Qt 2.x)</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3207"
+></A
+><CODE
+CLASS="FUNCDEF"
+>bool colXPos</CODE
+>(int col, int *xPos);<P
+></P
+></DIV
+><P
+>This takes the <TT
+CLASS="LITERAL"
+>col</TT
+> parameter and returns a tuple containing
+the <TT
+CLASS="LITERAL"
+>bool</TT
+> result and <TT
+CLASS="LITERAL"
+>xPos</TT
+>.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3218"
+></A
+><CODE
+CLASS="FUNCDEF"
+>bool rowYPos</CODE
+>(int row, int *yPos);<P
+></P
+></DIV
+><P
+>This takes the <TT
+CLASS="LITERAL"
+>row</TT
+> parameter and returns a tuple containing
+the <TT
+CLASS="LITERAL"
+>bool</TT
+> result and <TT
+CLASS="LITERAL"
+>yPos</TT
+>.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3229"
+>QTabWidget (Qt v2+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QTabWidget</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3233"
+>QTextBrowser (Qt v2+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QTextBrowser</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3237"
+>QTextCodec (Qt v2+)</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3239"
+></A
+><CODE
+CLASS="FUNCDEF"
+>virtual QCString fromUnicode</CODE
+>(const QString &amp;uc, int &amp;lenInOut);<P
+></P
+></DIV
+><P
+>The returned value is a tuple of the <TT
+CLASS="LITERAL"
+>QCString</TT
+> result and the
+updated <TT
+CLASS="LITERAL"
+>lenInOut</TT
+>.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3249"
+>QTextDecoder (Qt v2+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QTextDecoder</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3253"
+>QTextEncoder (Qt v2+)</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3255"
+></A
+><CODE
+CLASS="FUNCDEF"
+>virtual QCString fromUnicode = 0</CODE
+>(const QString &amp;uc, int &amp;lenInOut);<P
+></P
+></DIV
+><P
+>The returned value is a tuple of the <TT
+CLASS="LITERAL"
+>QCString</TT
+> result and the
+updated <TT
+CLASS="LITERAL"
+>lenInOut</TT
+>.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3265"
+>QTextEdit (Qt v3+)</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3267"
+></A
+><CODE
+CLASS="FUNCDEF"
+>int charAt</CODE
+>(const QPoint &amp;pos, int *para = 0);<P
+></P
+></DIV
+><P
+>This takes only the <TT
+CLASS="LITERAL"
+>pos</TT
+> parameter and returns a tuple of the
+value returned via the <TT
+CLASS="LITERAL"
+>para</TT
+> pointer and the int result.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3277"
+></A
+><CODE
+CLASS="FUNCDEF"
+>void del</CODE
+>();<P
+></P
+></DIV
+><P
+>This has been renamed <TT
+CLASS="LITERAL"
+>delChar</TT
+> in Python.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3283"
+></A
+><CODE
+CLASS="FUNCDEF"
+>virtual bool find</CODE
+>(const QString &amp;expr, bool cs, bool wo, bool forward = TRUE, int *para = 0, int *index = 0);<P
+></P
+></DIV
+><P
+>If the <TT
+CLASS="LITERAL"
+>para</TT
+> and <TT
+CLASS="LITERAL"
+>index</TT
+> parameters are
+omitted then the bool result is returned. If both are supplied (as integers)
+then a tuple of the bool result and the modified values of
+<TT
+CLASS="LITERAL"
+>para</TT
+> and <TT
+CLASS="LITERAL"
+>index</TT
+> is returned.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3303"
+></A
+><CODE
+CLASS="FUNCDEF"
+>void getCursorPosition</CODE
+>(int *para, int *index);<P
+></P
+></DIV
+><P
+>This takes no parameters and returns a tuple of the values returned via the
+<TT
+CLASS="LITERAL"
+>para</TT
+> and <TT
+CLASS="LITERAL"
+>index</TT
+> pointers.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3313"
+></A
+><CODE
+CLASS="FUNCDEF"
+>void getSelection</CODE
+>(int *paraFrom, int *indexFrom, int *paraTo, int *indexTo, int selNum = 0);<P
+></P
+></DIV
+><P
+>This takes only the <TT
+CLASS="LITERAL"
+>selNum</TT
+> parameter and returns a tuple of
+the <TT
+CLASS="LITERAL"
+>paraFrom</TT
+>, <TT
+CLASS="LITERAL"
+>indexFrom</TT
+>,
+<TT
+CLASS="LITERAL"
+>paraTo</TT
+> and <TT
+CLASS="LITERAL"
+>indexTo</TT
+> values.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3332"
+>QTextStream</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3334"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QTextStream</CODE
+>(FILE *fp, int mode);<P
+></P
+></DIV
+><P
+>Not implemented.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3342"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QTextStream &#38;readRawBytes</CODE
+>(char *buf, uint len);<P
+></P
+></DIV
+><P
+>Not yet implemented.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3350"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QTextStream &#38;writeRawBytes</CODE
+>(const char *buf, uint len);<P
+></P
+></DIV
+><P
+>Not yet implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3358"
+>QTextIStream (Qt v2+)</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3360"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QTextIStream</CODE
+>(FILE *fp, int mode);<P
+></P
+></DIV
+><P
+>Not implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3368"
+>QTextOStream (Qt v2+)</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3370"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QTextOStream</CODE
+>(FILE *fp, int mode);<P
+></P
+></DIV
+><P
+>Not implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3378"
+>QTextView (Qt v2+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QTextView</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3382"
+>QThread (Qt v2.2+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QThread</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3386"
+>QTimer</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QTimer</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3390"
+>QToolBar</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QToolBar</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3394"
+>QToolBox (Qt v3.2.0+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QToolBox</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3398"
+>QToolButton</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QToolButton</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3402"
+>QToolTip</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QToolTip</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3406"
+>QToolTipGroup</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QToolTipGroup</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3410"
+>QTranslator (Qt v2+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QTranslator</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3414"
+>QTranslatorMessage (Qt v2.2+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QTranslatorMessage</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3418"
+>QUrl (Qt v2.1+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QUrl</TT
+> is fully implemented, including the
+<TT
+CLASS="LITERAL"
+>QString()</TT
+>, <TT
+CLASS="LITERAL"
+>==</TT
+> and <TT
+CLASS="LITERAL"
+>!=</TT
+>
+operators.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3425"
+>QUrlInfo (Qt v2.1+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QUrlInfo</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3429"
+>QUrlOperator (Qt v2.1+)</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3431"
+></A
+><CODE
+CLASS="FUNCDEF"
+>virtual bool isDir</CODE
+>(bool *ok);<P
+></P
+></DIV
+><P
+>This returns a tuple of the <TT
+CLASS="LITERAL"
+>bool</TT
+> result and the
+<TT
+CLASS="LITERAL"
+>ok</TT
+> value.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3439"
+>QUuid (Qt v3.0+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QUuid</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3443"
+>QValidator</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3445"
+></A
+><CODE
+CLASS="FUNCDEF"
+>virtual State validate</CODE
+>(QString&#38; input, int&#38; pos);<P
+></P
+></DIV
+><P
+>The returned value is a tuple of the <TT
+CLASS="LITERAL"
+>State</TT
+> result and the
+updated <TT
+CLASS="LITERAL"
+>pos</TT
+>.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3455"
+>QDoubleValidator</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3457"
+></A
+><CODE
+CLASS="FUNCDEF"
+>State validate</CODE
+>(QString&#38; input, int&#38; pos);<P
+></P
+></DIV
+><P
+>The returned value is a tuple of the <TT
+CLASS="LITERAL"
+>State</TT
+> result and the
+updated <TT
+CLASS="LITERAL"
+>pos</TT
+>.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3467"
+>QIntValidator</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3469"
+></A
+><CODE
+CLASS="FUNCDEF"
+>State validate</CODE
+>(QString&#38; input, int&#38; pos);<P
+></P
+></DIV
+><P
+>The returned value is a tuple of the <TT
+CLASS="LITERAL"
+>State</TT
+> result and the
+updated <TT
+CLASS="LITERAL"
+>pos</TT
+>.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3479"
+>QRegExpValidator (Qt v3+)</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3481"
+></A
+><CODE
+CLASS="FUNCDEF"
+>virtual State validate</CODE
+>(QString&#38; input, int&#38; pos);<P
+></P
+></DIV
+><P
+>The returned value is a tuple of the <TT
+CLASS="LITERAL"
+>State</TT
+> result and the
+updated <TT
+CLASS="LITERAL"
+>pos</TT
+>.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3491"
+>QValueList&lt;type&gt; (Qt v2+)</A
+></H3
+><P
+>Types based on the <TT
+CLASS="LITERAL"
+>QValueList</TT
+> template are automatically
+converted to and from Python lists of the type.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3495"
+>QVariant (Qt v2.1+)</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3497"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QVariant</CODE
+>(const char *val);<P
+></P
+></DIV
+><P
+>Not implemented.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3503"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QVariant</CODE
+>(const QBitArray &amp;val);<P
+></P
+></DIV
+><P
+>Not yet implemented. (Qt v3+)</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3509"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QVariant</CODE
+>(const QValueList&lt;QVariant&gt; &amp;val);<P
+></P
+></DIV
+><P
+>Not yet implemented.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3515"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QVariant</CODE
+>(const QMap&lt;QString,QVariant&gt; &amp;val);<P
+></P
+></DIV
+><P
+>Not yet implemented.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3521"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QBitArray &amp;asBitArray</CODE
+>();<P
+></P
+></DIV
+><P
+>Not yet implemented. (Qt v3+)</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3526"
+></A
+><CODE
+CLASS="FUNCDEF"
+>bool &amp;asBool</CODE
+>();<P
+></P
+></DIV
+><P
+>Not implemented.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3531"
+></A
+><CODE
+CLASS="FUNCDEF"
+>double &amp;asDouble</CODE
+>();<P
+></P
+></DIV
+><P
+>Not implemented.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3536"
+></A
+><CODE
+CLASS="FUNCDEF"
+>int &amp;asInt</CODE
+>();<P
+></P
+></DIV
+><P
+>Not implemented.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3541"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QValueList&lt;QVariant&gt; &amp;asList</CODE
+>();<P
+></P
+></DIV
+><P
+>Not implemented.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3546"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QMap&lt;QString,QVariant&gt; &amp;asMap</CODE
+>();<P
+></P
+></DIV
+><P
+>Not implemented.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3551"
+></A
+><CODE
+CLASS="FUNCDEF"
+>uint &amp;asUInt</CODE
+>();<P
+></P
+></DIV
+><P
+>Not implemented.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3556"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QValueListConstIterator&lt;QVariant&gt;listBegin const</CODE
+>();<P
+></P
+></DIV
+><P
+>Not implemented.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3561"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QValueListConstIterator&lt;QVariant&gt;listEnd const</CODE
+>();<P
+></P
+></DIV
+><P
+>Not implemented.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3566"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QMapConstIterator&lt;QString,QVariant&gt;mapBegin const</CODE
+>();<P
+></P
+></DIV
+><P
+>Not implemented.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3571"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QMapConstIterator&lt;QString,QVariant&gt;mapEnd const</CODE
+>();<P
+></P
+></DIV
+><P
+>Not implemented.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3576"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QMapConstIterator&lt;QString,QVariant&gt;mapFind const</CODE
+>(const QString &#38;key);<P
+></P
+></DIV
+><P
+>Not implemented.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3582"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QValueListConstIterator&lt;QString&gt;stringListBegin const</CODE
+>();<P
+></P
+></DIV
+><P
+>Not implemented.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3587"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QValueListConstIterator&lt;QString&gt;stringListEnd const</CODE
+>();<P
+></P
+></DIV
+><P
+>Not implemented.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3592"
+></A
+><CODE
+CLASS="FUNCDEF"
+>const QBitArray toBitArray const</CODE
+>();<P
+></P
+></DIV
+><P
+>Not yet implemented. (Qt v3+)</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3597"
+></A
+><CODE
+CLASS="FUNCDEF"
+>const QValueList&lt;QVariant&gt;toList const</CODE
+>();<P
+></P
+></DIV
+><P
+>Not yet implemented.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3602"
+></A
+><CODE
+CLASS="FUNCDEF"
+>const QMap&lt;QString,QVariant&gt;toMap const</CODE
+>();<P
+></P
+></DIV
+><P
+>Not yet implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3607"
+>QVBox (Qt v2+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QVBox</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3611"
+>QVButtonGroup (Qt v2+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QVButtonGroup</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3615"
+>QVGroupBox (Qt v2+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QVGroupBox</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3619"
+>QWaitCondition (Qt v2.2+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QWaitCondition</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3623"
+>QWhatsThis</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QWhatsThis</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3627"
+>QWidget</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3629"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QWExtra *extraData</CODE
+>();<P
+></P
+></DIV
+><P
+>Not implemented.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3634"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QFocusData *focusData</CODE
+>();<P
+></P
+></DIV
+><P
+>Not implemented.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3639"
+></A
+><CODE
+CLASS="FUNCDEF"
+>void lower</CODE
+>();<P
+></P
+></DIV
+><P
+>This has been renamed to <TT
+CLASS="LITERAL"
+>lowerW</TT
+> in Python.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3645"
+></A
+><CODE
+CLASS="FUNCDEF"
+>void raise</CODE
+>();<P
+></P
+></DIV
+><P
+>This has been renamed to <TT
+CLASS="LITERAL"
+>raiseW</TT
+> in Python.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3651"
+>QWidgetList</A
+></H3
+><P
+>This class isn't implemented. Whenever a <TT
+CLASS="LITERAL"
+>QWidgetList</TT
+> is the
+return type of a function or the type of an argument, a Python list of
+instances is used instead.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3655"
+>QWidgetStack</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QWidgetStack</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3659"
+>QWindow</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QWindow</TT
+> is fully implemented (Qt v1.x).</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3663"
+>QWindowsStyle (Qt v2+)</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3665"
+></A
+><CODE
+CLASS="FUNCDEF"
+>void getButtonShift</CODE
+>(int &#38;x, int &#38;y);<P
+></P
+></DIV
+><P
+>This takes no parameters and returns a tuple of the <TT
+CLASS="LITERAL"
+>x</TT
+> and
+<TT
+CLASS="LITERAL"
+>y</TT
+> values. (Qt v2)</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3675"
+></A
+><CODE
+CLASS="FUNCDEF"
+>void scrollBarMetrics</CODE
+>(const QTabBar *sb, int &#38;sliderMin, int &#38;sliderMax, int &#38;sliderLength, int &#38;buttonDim);<P
+></P
+></DIV
+><P
+>This takes only the <TT
+CLASS="LITERAL"
+>sb</TT
+> parameter and returns a tuple of the
+<TT
+CLASS="LITERAL"
+>sliderMin</TT
+>, <TT
+CLASS="LITERAL"
+>sliderMax</TT
+>,
+<TT
+CLASS="LITERAL"
+>sliderLength</TT
+> and <TT
+CLASS="LITERAL"
+>buttonDim</TT
+> values.
+(Qt v2)</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3694"
+></A
+><CODE
+CLASS="FUNCDEF"
+>void tabbarMetrics</CODE
+>(const QTabBar *t, int &#38;hframe, int &#38;vframe, int &#38;overlap);<P
+></P
+></DIV
+><P
+>This takes only the <TT
+CLASS="LITERAL"
+>t</TT
+> parameter and returns a tuple of the
+<TT
+CLASS="LITERAL"
+>hframe</TT
+>, <TT
+CLASS="LITERAL"
+>vframe</TT
+> and
+<TT
+CLASS="LITERAL"
+>overlap</TT
+> values. (Qt v2)</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3710"
+>QWindowsXPStyle (Qt v3.0.1+, Windows)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QWindowsXPStyle</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3714"
+>QWizard (Qt v2+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QWizard</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3718"
+>QWMatrix</A
+></H3
+><P
+>The Python <TT
+CLASS="LITERAL"
+>==</TT
+>, <TT
+CLASS="LITERAL"
+>!=</TT
+> and
+<TT
+CLASS="LITERAL"
+>*=</TT
+> operators are supported.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3724"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QWMatrix invert const</CODE
+>(bool *invertible = 0);<P
+></P
+></DIV
+><P
+>This takes no parameters and returns a tuple of the <TT
+CLASS="LITERAL"
+>QWMatrix</TT
+>
+result and the <TT
+CLASS="LITERAL"
+>invertible</TT
+> value.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3732"
+></A
+><CODE
+CLASS="FUNCDEF"
+>void map const</CODE
+>(int x, int y, int *tx, int *ty);<P
+></P
+></DIV
+><P
+>This takes the <TT
+CLASS="LITERAL"
+>x</TT
+> and <TT
+CLASS="LITERAL"
+>y</TT
+> parameters and
+returns a tuple containing the <TT
+CLASS="LITERAL"
+>tx</TT
+> and <TT
+CLASS="LITERAL"
+>ty</TT
+>
+values.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3748"
+></A
+><CODE
+CLASS="FUNCDEF"
+>void map const</CODE
+>(float x, float y, float *tx, float *ty);<P
+></P
+></DIV
+><P
+>This takes the <TT
+CLASS="LITERAL"
+>x</TT
+> and <TT
+CLASS="LITERAL"
+>y</TT
+> parameters and
+returns a tuple containing the <TT
+CLASS="LITERAL"
+>tx</TT
+> and <TT
+CLASS="LITERAL"
+>ty</TT
+>
+values. (Qt v1.x)</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3764"
+></A
+><CODE
+CLASS="FUNCDEF"
+>void map const</CODE
+>(double x, double y, double *tx, double *ty);<P
+></P
+></DIV
+><P
+>This takes the <TT
+CLASS="LITERAL"
+>x</TT
+> and <TT
+CLASS="LITERAL"
+>y</TT
+> parameters and
+returns a tuple containing the <TT
+CLASS="LITERAL"
+>tx</TT
+> and <TT
+CLASS="LITERAL"
+>ty</TT
+>
+values. (Qt v2+)</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3780"
+>QWorkspace (Qt v2.1+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QWorkspace</TT
+> is fully implemented.</P
+></DIV
+></DIV
+><DIV
+CLASS="SECT1"
+><HR><H2
+CLASS="SECT1"
+><A
+NAME="AEN3784"
+><TT
+CLASS="LITERAL"
+>qtaxcontainer</TT
+> Module Reference</A
+></H2
+><DIV
+CLASS="SECT2"
+><H3
+CLASS="SECT2"
+><A
+NAME="AEN3787"
+>QAxBase (Windows, Qt v3+)</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3789"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QAxObject</CODE
+>(IUnknown *iface = 0);<P
+></P
+></DIV
+><P
+>Not implemented.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3795"
+></A
+><CODE
+CLASS="FUNCDEF"
+>long queryInterface</CODE
+>(const QUuid &amp;uuid, void **iface);<P
+></P
+></DIV
+><P
+>Not implemented.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3803"
+></A
+><CODE
+CLASS="FUNCDEF"
+>PropertyBag propertyBag const</CODE
+>();<P
+></P
+></DIV
+><P
+>Not implemented.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3808"
+></A
+><CODE
+CLASS="FUNCDEF"
+>void setPropertyBag</CODE
+>(const PropertyBag &amp;bag);<P
+></P
+></DIV
+><P
+>Not implemented.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3814"
+></A
+><CODE
+CLASS="FUNCDEF"
+>unsigned long registerWeakActiveObject</CODE
+>(const QString &amp;guid);<P
+></P
+></DIV
+><P
+>This is a utility method provided by PyQt to make it easier to use
+Mark Hammond's <TT
+CLASS="LITERAL"
+>win32com</TT
+> module to manipulate objects
+created by the <TT
+CLASS="LITERAL"
+>qtaxcontainer</TT
+> module.</P
+><P
+>The <TT
+CLASS="LITERAL"
+>RegisterActiveObject()</TT
+> COM function is called to
+register the <TT
+CLASS="LITERAL"
+>QAxBase</TT
+> instance as a weak object with the
+<TT
+CLASS="LITERAL"
+>guid</TT
+> GUID. The revoke handle is returned.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3826"
+></A
+><CODE
+CLASS="FUNCDEF"
+>static void revokeActiveObject</CODE
+>(unsigned long rhandle);<P
+></P
+></DIV
+><P
+>This is a wrapper around the <TT
+CLASS="LITERAL"
+>RevokeActiveObject()</TT
+> COM
+function and is called to revoke the object registered using
+<TT
+CLASS="LITERAL"
+>registerWeakActiveObject()</TT
+>. <TT
+CLASS="LITERAL"
+>rhandle</TT
+> is
+the revoke handle returned by <TT
+CLASS="LITERAL"
+>registerWeakActiveObject()</TT
+>.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3836"
+>QAxObject (Windows, Qt v3+)</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3838"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QAxObject</CODE
+>(IUnknown *iface, QObject *parent = 0, const char *name = 0);<P
+></P
+></DIV
+><P
+>Not implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3848"
+>QAxWidget (Windows, Qt v3+)</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3850"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QAxWidget</CODE
+>(IUnknown *iface, QWidget *parent = 0, const char *name = 0);<P
+></P
+></DIV
+><P
+>Not implemented.</P
+></DIV
+></DIV
+><DIV
+CLASS="SECT1"
+><HR><H2
+CLASS="SECT1"
+><A
+NAME="AEN3860"
+><TT
+CLASS="LITERAL"
+>qtcanvas</TT
+> Module Reference</A
+></H2
+><DIV
+CLASS="SECT2"
+><H3
+CLASS="SECT2"
+><A
+NAME="AEN3863"
+>QCanvas (Qt v2.2+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QCanvas</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3867"
+>QCanvasEllipse (Qt v2.2+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QCanvasEllipse</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3871"
+>QCanvasItem (Qt v2.2+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QCanvasItem</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3875"
+>QCanvasItemList (Qt v2.2+)</A
+></H3
+><P
+>This class isn't implemented. Whenever a <TT
+CLASS="LITERAL"
+>QCanvasItemList</TT
+> is
+the return type of a function or the type of an argument, a Python list of
+<TT
+CLASS="LITERAL"
+>QCanvasItem</TT
+> instances is used instead.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3880"
+>QCanvasLine (Qt v2.2+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QCanvasLine</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3884"
+>QCanvasPixmap (Qt v2.2+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QCanvasPixmap</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3888"
+>QCanvasPixmapArray (Qt v2.2+)</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3890"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QPixmapArray</CODE
+>(QList&lt;QPixmap&gt; pixmaps, QList&lt;QPoint&gt; hotspots);<P
+></P
+></DIV
+><P
+>The <TT
+CLASS="LITERAL"
+>pixmaps</TT
+> argument is a Python list of QPixmap instances,
+and the <TT
+CLASS="LITERAL"
+>hotspots</TT
+> argument is a Python list of QPoint
+instances. (Qt v2.2.0 - Qt v2.3.1)</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3900"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QPixmapArray</CODE
+>(QValueList&lt;QPixmap&gt; pixmaps, QPointArray hotspots = QPointArray());<P
+></P
+></DIV
+><P
+>The <TT
+CLASS="LITERAL"
+>pixmaps</TT
+> argument is a Python list of QPixmap instances.
+(Qt v3+)</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3909"
+>QCanvasPolygon (Qt v2.2+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QCanvasPolygon</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3913"
+>QCanvasPolygonalItem (Qt v2.2+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QCanvasPolygonalItem</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3917"
+>QCanvasRectangle (Qt v2.2+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QCanvasRectangle</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3921"
+>QCanvasSpline (Qt v3.0+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QCanvasSpline</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3925"
+>QCanvasSprite (Qt v2.2+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QCanvasSprite</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3929"
+>QCanvasText (Qt v2.2+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QCanvasText</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3933"
+>QCanvasView (Qt v2.2+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QCanvasView</TT
+> is fully implemented.</P
+></DIV
+></DIV
+><DIV
+CLASS="SECT1"
+><HR><H2
+CLASS="SECT1"
+><A
+NAME="AEN3937"
+><TT
+CLASS="LITERAL"
+>qtext</TT
+> Module Reference</A
+></H2
+><DIV
+CLASS="SECT2"
+><H3
+CLASS="SECT2"
+><A
+NAME="AEN3940"
+>QextScintilla</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3942"
+></A
+><CODE
+CLASS="FUNCDEF"
+>void getCursorPosition</CODE
+>(int *line, int *index);<P
+></P
+></DIV
+><P
+>This takes no parameters and returns a tuple of the values returned by the
+<TT
+CLASS="LITERAL"
+>line</TT
+> and <TT
+CLASS="LITERAL"
+>index</TT
+> pointers.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN3952"
+></A
+><CODE
+CLASS="FUNCDEF"
+>void getSelection</CODE
+>(int *lineFrom, int *indexFrom, int *lineTo, int *indexTo);<P
+></P
+></DIV
+><P
+>This takes no parameters and returns a tuple of the values returned by the
+<TT
+CLASS="LITERAL"
+>lineFrom</TT
+>, <TT
+CLASS="LITERAL"
+>indexFrom</TT
+>,
+<TT
+CLASS="LITERAL"
+>lineTo</TT
+> and <TT
+CLASS="LITERAL"
+>indexTo</TT
+> pointers.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3968"
+>QextScintillaAPIs</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QextScintillaAPIs</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3972"
+>QextScintillaBase</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QextScintillaBase</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3976"
+>QextScintillaCommand</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QextScintillaCommand</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3980"
+>QextScintillaCommandSet</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QextScintillaCommandSet</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3984"
+>QextScintillaDocument</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QextScintillaDocument</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3988"
+>QextScintillaLexer</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QextScintillaLexer</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3992"
+>QextScintillaLexerBash (QScintilla v1.4+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QextScintillaLexerBash</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN3996"
+>QextScintillaLexerBatch (QScintilla v1.6+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QextScintillaLexerBatch</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4000"
+>QextScintillaLexerCPP</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QextScintillaLexerCPP</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4004"
+>QextScintillaLexerCSharp</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QextScintillaLexerCSharp</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4008"
+>QextScintillaLexerCSS (QScintilla v1.6+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QextScintillaLexerCSS</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4012"
+>QextScintillaLexerDiff (QScintilla v1.6+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QextScintillaLexerDiff</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4016"
+>QextScintillaLexerHTML (QScintilla v1.1+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QextScintillaLexerHTML</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4020"
+>QextScintillaLexerIDL</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QextScintillaLexerIDL</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4024"
+>QextScintillaLexerJava</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QextScintillaLexerJava</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4028"
+>QextScintillaLexerJavaScript</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QextScintillaLexerJavaScript</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4032"
+>QextScintillaLexerLua (QScintilla v1.5+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QextScintillaLexerLua</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4036"
+>QextScintillaLexerMakefile (QScintilla v1.6+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QextScintillaLexerMakefile</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4040"
+>QextScintillaLexerPerl</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QextScintillaLexerPerl</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4044"
+>QextScintillaLexerPOV (QScintilla v1.6+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QextScintillaLexerPOV</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4048"
+>QextScintillaLexerProperties (QScintilla v1.6+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QextScintillaLexerProperties</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4052"
+>QextScintillaLexerPython</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QextScintillaLexerPython</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4056"
+>QextScintillaLexerRuby (QScintilla v1.5+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QextScintillaLexerRuby</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4060"
+>QextScintillaLexerSQL (QScintilla v1.1+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QextScintillaLexerSQL</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4064"
+>QextScintillaLexerTeX (QScintilla v1.6+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QextScintillaLexerTeX</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4068"
+>QextScintillaMacro</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QextScintillaMacro</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4072"
+>QextScintillaPrinter</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QextScintillaPrinter</TT
+> is fully implemented.</P
+></DIV
+></DIV
+><DIV
+CLASS="SECT1"
+><HR><H2
+CLASS="SECT1"
+><A
+NAME="AEN4076"
+><TT
+CLASS="LITERAL"
+>qtgl</TT
+> Module Reference</A
+></H2
+><DIV
+CLASS="SECT2"
+><H3
+CLASS="SECT2"
+><A
+NAME="AEN4079"
+>QGL</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QGL</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4083"
+>QGLContext</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QGLContext</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4087"
+>QGLFormat</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QGLFormat</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4091"
+>QGLWidget</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QGLWidget</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4095"
+>QGLColormap (Qt v3.0+)</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN4097"
+></A
+><CODE
+CLASS="FUNCDEF"
+>void setEntries</CODE
+>(int count, const QRgb *colors, int base = 0);<P
+></P
+></DIV
+><P
+>Not yet implemented.</P
+></DIV
+></DIV
+><DIV
+CLASS="SECT1"
+><HR><H2
+CLASS="SECT1"
+><A
+NAME="AEN4107"
+><TT
+CLASS="LITERAL"
+>qtnetwork</TT
+> Module Reference</A
+></H2
+><DIV
+CLASS="SECT2"
+><H3
+CLASS="SECT2"
+><A
+NAME="AEN4110"
+>QDns (Qt v2.2+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QDns</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4114"
+>QFtp (Qt v2.2+)</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN4116"
+></A
+><CODE
+CLASS="FUNCDEF"
+>Q_LONG readBlock</CODE
+>(char *data, Q_ULONG maxlen);<P
+></P
+></DIV
+><P
+>This takes a single <TT
+CLASS="LITERAL"
+>maxlen</TT
+> parameter. The
+<TT
+CLASS="LITERAL"
+>data</TT
+> is returned if there was no error, otherwise
+<TT
+CLASS="LITERAL"
+>None</TT
+> is returned.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4127"
+>QHostAddress (Qt v2.2+)</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN4129"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QHostAddress</CODE
+>(Q_UINT8 *ip6Addr);<P
+></P
+></DIV
+><P
+>Not yet implemented.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN4135"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QHostAddress</CODE
+>(const Q_IPV6ADDR &amp;ip6Addr);<P
+></P
+></DIV
+><P
+>Not yet implemented.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN4141"
+></A
+><CODE
+CLASS="FUNCDEF"
+>void setAddress</CODE
+>(Q_UINT8 *ip6Addr);<P
+></P
+></DIV
+><P
+>Not yet implemented.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN4147"
+></A
+><CODE
+CLASS="FUNCDEF"
+>Q_IPV6ADDR toIPv6Address const</CODE
+>();<P
+></P
+></DIV
+><P
+>Not yet implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4153"
+>QHttp (Qt v3+)</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN4155"
+></A
+><CODE
+CLASS="FUNCDEF"
+>Q_LONG readBlock</CODE
+>(char *data, Q_ULONG maxlen);<P
+></P
+></DIV
+><P
+>This takes a single <TT
+CLASS="LITERAL"
+>maxlen</TT
+> parameter. The
+<TT
+CLASS="LITERAL"
+>data</TT
+> is returned if there was no error, otherwise
+<TT
+CLASS="LITERAL"
+>None</TT
+> is returned.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4166"
+>QHttpHeader (Qt v3.1+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QHttpHeader</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4170"
+>QHttpRequestHeader (Qt v3.1+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QHttpRequestHeader</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4174"
+>QHttpResponseHeader (Qt v3.1+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QHttpResponseHeader</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4178"
+>QLocalFs (Qt v2.1+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QLocalFs</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4182"
+>QServerSocket (Qt v2.2+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QServerSocket</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4186"
+>QSocket (Qt v2.2+)</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN4188"
+></A
+><CODE
+CLASS="FUNCDEF"
+>Q_LONG readBlock</CODE
+>(char *data, Q_ULONG len);<P
+></P
+></DIV
+><P
+>This takes a single <TT
+CLASS="LITERAL"
+>len</TT
+> parameter. The
+<TT
+CLASS="LITERAL"
+>data</TT
+> is returned if there was no error, otherwise
+<TT
+CLASS="LITERAL"
+>Py_None</TT
+> is returned.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN4199"
+></A
+><CODE
+CLASS="FUNCDEF"
+>Q_LONG readLine</CODE
+>(char *data, Q_ULONG maxlen);<P
+></P
+></DIV
+><P
+>This takes a single <TT
+CLASS="LITERAL"
+>maxlen</TT
+> parameter. The
+<TT
+CLASS="LITERAL"
+>data</TT
+> is returned if there was no error, otherwise
+<TT
+CLASS="LITERAL"
+>Py_None</TT
+> is returned.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN4210"
+></A
+><CODE
+CLASS="FUNCDEF"
+>Q_LONG writeBlock</CODE
+>(const char *data, Q_ULONG len);<P
+></P
+></DIV
+><P
+><TT
+CLASS="LITERAL"
+>len</TT
+> is derived from <TT
+CLASS="LITERAL"
+>data</TT
+> and not passed
+as a parameter.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4220"
+>QSocketDevice (Qt v2.2+)</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN4222"
+></A
+><CODE
+CLASS="FUNCDEF"
+>Q_LONG readBlock</CODE
+>(char *data, Q_ULONG len);<P
+></P
+></DIV
+><P
+>This takes a single <TT
+CLASS="LITERAL"
+>len</TT
+> parameter. The
+<TT
+CLASS="LITERAL"
+>data</TT
+> is returned if there was no error, otherwise
+<TT
+CLASS="LITERAL"
+>None</TT
+> is returned.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN4233"
+></A
+><CODE
+CLASS="FUNCDEF"
+>Q_LONG writeBlock</CODE
+>(const char *data, Q_ULONG len);<P
+></P
+></DIV
+><P
+><TT
+CLASS="LITERAL"
+>len</TT
+> is derived from <TT
+CLASS="LITERAL"
+>data</TT
+> and not passed
+as a parameter.</P
+></DIV
+></DIV
+><DIV
+CLASS="SECT1"
+><HR><H2
+CLASS="SECT1"
+><A
+NAME="AEN4243"
+><TT
+CLASS="LITERAL"
+>qtpe</TT
+> Module Reference</A
+></H2
+><DIV
+CLASS="SECT2"
+><H3
+CLASS="SECT2"
+><A
+NAME="AEN4246"
+>QPEApplication</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN4248"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QApplication</CODE
+>(int&#38; argc, char **argv, Type type);<P
+></P
+></DIV
+><P
+>This takes two parameters, the first of which is a list of argument strings.
+Arguments used by Qt are removed from the list.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN4258"
+></A
+><CODE
+CLASS="FUNCDEF"
+>int exec</CODE
+>();<P
+></P
+></DIV
+><P
+>This has been renamed to <TT
+CLASS="LITERAL"
+>exec_loop</TT
+> in Python.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4264"
+>AppLnk</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN4266"
+></A
+><CODE
+CLASS="FUNCDEF"
+>virtual QString exec const</CODE
+>();<P
+></P
+></DIV
+><P
+>This has been renamed to <TT
+CLASS="LITERAL"
+>exec_property</TT
+> in Python.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4272"
+>AppLnkSet</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>AppLnkSet</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4276"
+>Config</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>Config</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4280"
+>DateFormat</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>DateFormat</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4284"
+>DocLnk</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN4286"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QString exec const</CODE
+>();<P
+></P
+></DIV
+><P
+>This has been renamed to <TT
+CLASS="LITERAL"
+>exec_property</TT
+> in Python.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4292"
+>DocLnkSet</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>DocLnkSet</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4296"
+>FileManager</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>FileManager</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4300"
+>FileSelector</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>FileSelector</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4304"
+>FileSelectorItem</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>FileSelectorItem</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4308"
+>FontDatabase</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>FontDatabase</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4312"
+>Global</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN4314"
+></A
+><CODE
+CLASS="FUNCDEF"
+>static void setBuiltinCommands</CODE
+>(Command *);<P
+></P
+></DIV
+><P
+>Not implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4319"
+>MenuButton</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>MenuButton</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4323"
+>QCopEnvelope</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QCopEnvelope</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4327"
+>QDawg</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QDawg</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4331"
+>QPEMenuBar</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QPEMenuBar</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4335"
+>QPEToolBar</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QPEToolBar</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4339"
+>Resource</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>Resource</TT
+> is fully implemented.</P
+></DIV
+></DIV
+><DIV
+CLASS="SECT1"
+><HR><H2
+CLASS="SECT1"
+><A
+NAME="AEN4343"
+><TT
+CLASS="LITERAL"
+>qtsql</TT
+> Module Reference</A
+></H2
+><DIV
+CLASS="SECT2"
+><H3
+CLASS="SECT2"
+><A
+NAME="AEN4346"
+>QDataBrowser (Qt v3+)</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN4348"
+></A
+><CODE
+CLASS="FUNCDEF"
+>virtual void del</CODE
+>();<P
+></P
+></DIV
+><P
+>This has been renamed <TT
+CLASS="LITERAL"
+>delOnCursor</TT
+> in Python.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4354"
+>QDataTable (Qt v3+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QDataTable</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4358"
+>QDataView (Qt v3+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QDataView</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4362"
+>QEditorFactory (Qt v3+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QEditorFactory</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4366"
+>QSql (Qt v3+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QSql</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4370"
+>QSqlCursor (Qt v3+)</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN4372"
+></A
+><CODE
+CLASS="FUNCDEF"
+>virtual int del</CODE
+>(bool invalidate = TRUE);<P
+></P
+></DIV
+><P
+>This has been renamed <TT
+CLASS="LITERAL"
+>delRecords</TT
+> in Python.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN4379"
+></A
+><CODE
+CLASS="FUNCDEF"
+>virtual int del</CODE
+>(const QString &amp;filter, bool invalidate = TRUE);<P
+></P
+></DIV
+><P
+>This has been renamed <TT
+CLASS="LITERAL"
+>delRecords</TT
+> in Python.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN4388"
+></A
+><CODE
+CLASS="FUNCDEF"
+>bool exec</CODE
+>(const QString &amp;query);<P
+></P
+></DIV
+><P
+>This has been renamed <TT
+CLASS="LITERAL"
+>execQuery</TT
+> in Python.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4395"
+>QSqlDatabase (Qt v3+)</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN4397"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QSqlQuery exec</CODE
+>(const QString &amp;query = QString::null);<P
+></P
+></DIV
+><P
+>This has been renamed <TT
+CLASS="LITERAL"
+>execStatement</TT
+> in Python.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4404"
+>QSqlDriver (Qt v3+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QSqlDriver</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4408"
+>QSqlEditorFactory (Qt v3+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QSqlEditorFactory</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4412"
+>QSqlError (Qt v3+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QSqlError</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4416"
+>QSqlField (Qt v3+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QSqlField</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4420"
+>QSqlFieldInfo (Qt v3+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QSqlFieldInfo</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4424"
+>QSqlForm (Qt v3+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QSqlForm</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4428"
+>QSqlIndex (Qt v3+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QSqlIndex</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4432"
+>QSqlPropertyMap (Qt v3+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QSqlPropertyMap</TT
+> is fully implemented. However, because PyQt
+does not allow new properties to be defined, it is not possible to implement
+custom editor widgets in Python and add them to a property map. This will
+simple be ignored.</P
+><P
+>This problem may be addressed in a future release of PyQt.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4437"
+>QSqlQuery (Qt v3+)</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN4439"
+></A
+><CODE
+CLASS="FUNCDEF"
+>QMap&lt;QString,QVariant&gt; boundValues const</CODE
+>();<P
+></P
+></DIV
+><P
+>Not yet implemented. (Qt v3.2.0+)</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN4444"
+></A
+><CODE
+CLASS="FUNCDEF"
+>virtual bool exec</CODE
+>(const QString &amp;query);<P
+></P
+></DIV
+><P
+>This has been renamed <TT
+CLASS="LITERAL"
+>execQuery</TT
+> in Python.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN4451"
+></A
+><CODE
+CLASS="FUNCDEF"
+>bool exec</CODE
+>();<P
+></P
+></DIV
+><P
+>This has been renamed <TT
+CLASS="LITERAL"
+>execQuery</TT
+> in Python. (Qt v3.1+)</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4457"
+>QSqlRecord (Qt v3+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QSqlRecord</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4461"
+>QSqlRecordInfo (Qt v3+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QSqlRecordInfo</TT
+> is implemented as a Python list of
+<TT
+CLASS="LITERAL"
+>QSqlFieldInfo</TT
+> instances.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4466"
+>QSqlResult (Qt v3+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QSqlResult</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4470"
+>QSqlSelectCursor (Qt v3.2.0+)</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN4472"
+></A
+><CODE
+CLASS="FUNCDEF"
+>int del</CODE
+>(bool invalidate = TRUE);<P
+></P
+></DIV
+><P
+>This has been renamed <TT
+CLASS="LITERAL"
+>delRecords</TT
+> in Python.</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN4479"
+></A
+><CODE
+CLASS="FUNCDEF"
+>bool exec</CODE
+>(const QString &amp;query);<P
+></P
+></DIV
+><P
+>This has been renamed <TT
+CLASS="LITERAL"
+>execQuery</TT
+> in Python.</P
+></DIV
+></DIV
+><DIV
+CLASS="SECT1"
+><HR><H2
+CLASS="SECT1"
+><A
+NAME="AEN4486"
+><TT
+CLASS="LITERAL"
+>qttable</TT
+> Module Reference</A
+></H2
+><DIV
+CLASS="SECT2"
+><H3
+CLASS="SECT2"
+><A
+NAME="AEN4489"
+>QTable (Qt v2.2+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QTable</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4493"
+>QTableItem (Qt v2.2+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QTableItem</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4497"
+>QCheckTableItem (Qt v3+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QCheckTableItem</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4501"
+>QComboTableItem (Qt v3+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QComboTableItem</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4505"
+>QTableSelection (Qt v2.2+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QTableSelection</TT
+> is fully implemented.</P
+></DIV
+></DIV
+><DIV
+CLASS="SECT1"
+><HR><H2
+CLASS="SECT1"
+><A
+NAME="AEN4509"
+><TT
+CLASS="LITERAL"
+>qtui</TT
+> Module Reference</A
+></H2
+><DIV
+CLASS="SECT2"
+><H3
+CLASS="SECT2"
+><A
+NAME="AEN4512"
+>QWidgetFactory (Qt v3+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QWidgetFactory</TT
+> is fully implemented.</P
+></DIV
+></DIV
+><DIV
+CLASS="SECT1"
+><HR><H2
+CLASS="SECT1"
+><A
+NAME="AEN4516"
+><TT
+CLASS="LITERAL"
+>qtxml</TT
+> Module Reference</A
+></H2
+><DIV
+CLASS="SECT2"
+><H3
+CLASS="SECT2"
+><A
+NAME="AEN4519"
+>QDomImplementation (Qt v2.2+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QDomImplementation</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4523"
+>QDomNode (Qt v2.2+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QDomNode</TT
+> is fully implemented, including the Python
+<TT
+CLASS="LITERAL"
+>==</TT
+> and <TT
+CLASS="LITERAL"
+>!=</TT
+> operators.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4529"
+>QDomNodeList (Qt v2.2+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QDomNodeList</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4533"
+>QDomDocument (Qt v2.2+)</A
+></H3
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN4535"
+></A
+><CODE
+CLASS="FUNCDEF"
+>bool setContent</CODE
+>(const QCString &amp;buffer, bool namespaceProcessing, QString *errorMsg = 0, int *errorLine = 0, int *errorColumn = 0);<P
+></P
+></DIV
+><P
+>This takes the <TT
+CLASS="LITERAL"
+>buffer</TT
+> and
+<TT
+CLASS="LITERAL"
+>namespaceProcessing</TT
+> parameters and returns a tuple
+containing the <TT
+CLASS="LITERAL"
+>bool</TT
+> result and the
+<TT
+CLASS="LITERAL"
+>errorMsg</TT
+>, <TT
+CLASS="LITERAL"
+>errorLine</TT
+> and
+<TT
+CLASS="LITERAL"
+>errorColumn</TT
+> values. (Qt v3+)</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN4555"
+></A
+><CODE
+CLASS="FUNCDEF"
+>bool setContent</CODE
+>(const QByteArray &amp;buffer, bool namespaceProcessing, QString *errorMsg = 0, int *errorLine = 0, int *errorColumn = 0);<P
+></P
+></DIV
+><P
+>This takes the <TT
+CLASS="LITERAL"
+>buffer</TT
+> and
+<TT
+CLASS="LITERAL"
+>namespaceProcessing</TT
+> parameters and returns a tuple
+containing the <TT
+CLASS="LITERAL"
+>bool</TT
+> result and the
+<TT
+CLASS="LITERAL"
+>errorMsg</TT
+>, <TT
+CLASS="LITERAL"
+>errorLine</TT
+> and
+<TT
+CLASS="LITERAL"
+>errorColumn</TT
+> values. (Qt v3+)</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN4575"
+></A
+><CODE
+CLASS="FUNCDEF"
+>bool setContent</CODE
+>(const QString &amp;text, bool namespaceProcessing, QString *errorMsg = 0, int *errorLine = 0, int *errorColumn = 0);<P
+></P
+></DIV
+><P
+>This takes the <TT
+CLASS="LITERAL"
+>text</TT
+> and
+<TT
+CLASS="LITERAL"
+>namespaceProcessing</TT
+> parameters and returns a tuple
+containing the <TT
+CLASS="LITERAL"
+>bool</TT
+> result and the
+<TT
+CLASS="LITERAL"
+>errorMsg</TT
+>, <TT
+CLASS="LITERAL"
+>errorLine</TT
+> and
+<TT
+CLASS="LITERAL"
+>errorColumn</TT
+> values. (Qt v3+)</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN4595"
+></A
+><CODE
+CLASS="FUNCDEF"
+>bool setContent</CODE
+>(const QIODevice *dev, bool namespaceProcessing, QString *errorMsg = 0, int *errorLine = 0, int *errorColumn = 0);<P
+></P
+></DIV
+><P
+>This takes the <TT
+CLASS="LITERAL"
+>dev</TT
+> and
+<TT
+CLASS="LITERAL"
+>namespaceProcessing</TT
+> parameters and returns a tuple
+containing the <TT
+CLASS="LITERAL"
+>bool</TT
+> result and the
+<TT
+CLASS="LITERAL"
+>errorMsg</TT
+>, <TT
+CLASS="LITERAL"
+>errorLine</TT
+> and
+<TT
+CLASS="LITERAL"
+>errorColumn</TT
+> values. (Qt v3+)</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN4615"
+></A
+><CODE
+CLASS="FUNCDEF"
+>bool setContent</CODE
+>(const QCString &amp;buffer, QString *errorMsg = 0, int *errorLine = 0, int *errorColumn = 0);<P
+></P
+></DIV
+><P
+>This takes the <TT
+CLASS="LITERAL"
+>buffer</TT
+> parameter only and returns a tuple
+containing the <TT
+CLASS="LITERAL"
+>bool</TT
+> result and the
+<TT
+CLASS="LITERAL"
+>errorMsg</TT
+>, <TT
+CLASS="LITERAL"
+>errorLine</TT
+> and
+<TT
+CLASS="LITERAL"
+>errorColumn</TT
+> values. (Qt v3+)</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN4632"
+></A
+><CODE
+CLASS="FUNCDEF"
+>bool setContent</CODE
+>(const QByteArray &amp;buffer, QString *errorMsg = 0, int *errorLine = 0, int *errorColumn = 0);<P
+></P
+></DIV
+><P
+>This takes the <TT
+CLASS="LITERAL"
+>buffer</TT
+> parameter only and returns a tuple
+containing the <TT
+CLASS="LITERAL"
+>bool</TT
+> result and the
+<TT
+CLASS="LITERAL"
+>errorMsg</TT
+>, <TT
+CLASS="LITERAL"
+>errorLine</TT
+> and
+<TT
+CLASS="LITERAL"
+>errorColumn</TT
+> values. (Qt v3+)</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN4649"
+></A
+><CODE
+CLASS="FUNCDEF"
+>bool setContent</CODE
+>(const QString &amp;text, QString *errorMsg = 0, int *errorLine = 0, int *errorColumn = 0);<P
+></P
+></DIV
+><P
+>This takes the <TT
+CLASS="LITERAL"
+>text</TT
+> parameter only and returns a tuple
+containing the <TT
+CLASS="LITERAL"
+>bool</TT
+> result and the
+<TT
+CLASS="LITERAL"
+>errorMsg</TT
+>, <TT
+CLASS="LITERAL"
+>errorLine</TT
+> and
+<TT
+CLASS="LITERAL"
+>errorColumn</TT
+> values. (Qt v3+)</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN4666"
+></A
+><CODE
+CLASS="FUNCDEF"
+>bool setContent</CODE
+>(const QIODevice *dev, QString *errorMsg = 0, int *errorLine = 0, int *errorColumn = 0);<P
+></P
+></DIV
+><P
+>This takes the <TT
+CLASS="LITERAL"
+>dev</TT
+> parameter only and returns a tuple
+containing the <TT
+CLASS="LITERAL"
+>bool</TT
+> result and the
+<TT
+CLASS="LITERAL"
+>errorMsg</TT
+>, <TT
+CLASS="LITERAL"
+>errorLine</TT
+> and
+<TT
+CLASS="LITERAL"
+>errorColumn</TT
+> values. (Qt v3+)</P
+><DIV
+CLASS="FUNCSYNOPSIS"
+><P
+></P
+><A
+NAME="AEN4683"
+></A
+><CODE
+CLASS="FUNCDEF"
+>bool setContent</CODE
+>(QXmlInputSource *source, QXmlReader *reader, QString *errorMsg = 0, int *errorLine = 0, int *errorColumn = 0);<P
+></P
+></DIV
+><P
+>Not yet implemented. (Qt v3.2.0+)</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4697"
+>QDomDocumentFragment (Qt v2.2+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QDomDocumentFragment</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4701"
+>QDomDocumentType (Qt v2.2+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QDomDocumentType</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4705"
+>QDomNamedNodeMap (Qt v2.2+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QDomNamedNodeMap</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4709"
+>QDomCharacterData (Qt v2.2+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QDomCharacterData</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4713"
+>QDomAttr (Qt v2.2+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QDomAttr</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4717"
+>QDomElement (Qt v2.2+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QDomElement</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4721"
+>QDomText (Qt v2.2+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QDomText</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4725"
+>QDomComment (Qt v2.2+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QDomComment</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4729"
+>QDomCDATASection (Qt v2.2+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QDomCDATASection</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4733"
+>QDomNotation (Qt v2.2+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QDomNotation</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4737"
+>QDomEntity (Qt v2.2+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QDomEntity</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4741"
+>QDomEntityReference (Qt v2.2+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QDomEntityReference</TT
+> is fully implemented.</P
+></DIV
+><DIV
+CLASS="SECT2"
+><HR><H3
+CLASS="SECT2"
+><A
+NAME="AEN4745"
+>QDomProcessingInstruction (Qt v2.2+)</A
+></H3
+><P
+><TT
+CLASS="LITERAL"
+>QDomProcessingInstruction</TT
+> is fully implemented.</P
+></DIV
+></DIV
+></DIV
+></BODY
+></HTML
+>
diff --git a/doc/PyQt.sgml b/doc/PyQt.sgml
new file mode 100644
index 0000000..253db19
--- /dev/null
+++ b/doc/PyQt.sgml
@@ -0,0 +1,5807 @@
+<!DOCTYPE Article PUBLIC "-//OASIS//DTD DocBook V3.1//EN">
+<Article>
+<ArtHeader>
+ <Title>Python Bindings for Qt (3.18.1)</Title>
+ <Author>
+ <FirstName>Phil</FirstName>
+ <Surname>Thompson</Surname>
+ </Author>
+ <Abstract>
+ <Para>
+ This document describes a set of Python bindings for the Qt widget set.
+ Contact the author at <Email>phil@riverbankcomputing.co.uk</Email>.
+ </Para>
+ </Abstract>
+</ArtHeader>
+
+
+<Sect1><Title>Introduction</Title>
+<Para>
+PyQt is a set of Python bindings for the Qt toolkit and available for all
+platforms supported by Qt, including Windows, Linux, UNIX, MacOS/X and embedded
+systems such as the Sharp Zaurus and the Compaq iPAQ. They have been tested
+against Qt versions 1.43 to 3.3.6, Qt Non-commercial, Qtopia 1.5.0, and Python
+versions 1.5 to 2.4.2. Qt/Embedded v3 is not supported. Qt v4 is supported
+by PyQt v4.
+</Para>
+
+<Para>
+PyQt is available under the GPL license for use with the GPL version of Qt, a
+a commercial license for use with the commercial version of Qt, a
+non-commercial license for use with the non-commercial version of Qt v2, and an
+educational license for use with the educational version of Qt.
+</Para>
+
+<Para>
+There is also an evaluation version of PyQt for Windows. This must be used
+with the corresponding evaluation version of Qt.
+</Para>
+
+<Para>
+PyQt is built using SIP (a tool for generating Python extension modules for
+C++ class libraries). SIP v4.6 or later must be installed in order to build
+and run this version of PyQt.
+</Para>
+
+<Para>
+PyQt for MacOS/X requires Qt v3.1.0 or later and Python v2.3 or later.
+</Para>
+
+<Para>
+The bindings are implemented as a number of Python modules
+</Para>
+
+<ItemizedList>
+<ListItem>
+<Para>
+<Literal>qt</Literal> is the main module and contains the core classes and most
+user interface widgets.
+</Para>
+</ListItem>
+
+<ListItem>
+<Para>
+<Literal>qtaxcontainer</Literal> contains a sub-set of the classes implemented
+in Qt's QAxContainer module, part of Qt's ActiveQt framework.
+</Para>
+</ListItem>
+
+<ListItem>
+<Para>
+<Literal>qtcanvas</Literal> contains the classes implemented in Qt's Canvas
+module.
+</Para>
+</ListItem>
+
+<ListItem>
+<Para>
+<Literal>qtgl</Literal> contains the classes implemented in Qt's OpenGL module.
+</Para>
+</ListItem>
+
+<ListItem>
+<Para>
+<Literal>qtnetwork</Literal> contains the classes implemented in Qt's Network
+module.
+</Para>
+</ListItem>
+
+<ListItem>
+<Para>
+<Literal>qtpe</Literal> contains the classes implemented in Qtopia (originally
+called the Qt Palmtop Environment). It is only supported with Qt/Embedded.
+</Para>
+</ListItem>
+
+<ListItem>
+<Para>
+<Literal>qtsql</Literal> contains the classes implemented in Qt's SQL module.
+</Para>
+</ListItem>
+
+<ListItem>
+<Para>
+<Literal>qttable</Literal> contains the classes implemented in Qt's Table
+module.
+</Para>
+</ListItem>
+
+<ListItem>
+<Para>
+<Literal>qtui</Literal> contains the classes implemented in Qt's qui library.
+These allow GUIs to be created directly from Qt Designer's
+<Literal>.ui</Literal> files.
+</Para>
+</ListItem>
+
+<ListItem>
+<Para>
+<Literal>qtxml</Literal> contains the classes implemented in Qt's XML module.
+</Para>
+</ListItem>
+
+<ListItem>
+<Para>
+<Literal>qtext</Literal> contains useful third-party classes that are not part
+of Qt. At the moment it contains bindings for QScintilla, the port to Qt of
+the Scintilla programmer's editor class.
+</Para>
+</ListItem>
+</ItemizedList>
+
+<Para>
+PyQt also includes the <Literal>pyuic</Literal> and
+<Literal>pylupdate</Literal> utilities which correspond to the Qt
+<Literal>uic</Literal> and <Literal>lupdate</Literal> utilities.
+<Literal>pyuic</Literal> converts the GUI designs created with Qt Designer to
+executable Python code. <Literal>pylupdate</Literal> scans Python code,
+extracts all strings that are candidates for internationalisation, and creates
+an XML file for use by Qt Linguist.
+</Para>
+
+<Sect2><Title>Changes</Title>
+<Para>
+The changes visible to the Python programmer in this release are as follows.
+</Para>
+<ItemizedList>
+
+<ListItem>
+<Para>
+This version requires SIP v4.4 (or later).
+</Para>
+</ListItem>
+
+<ListItem>
+<Para>
+Concatenating Python strings and <Literal>QString</Literal>s is now supported.
+</Para>
+</ListItem>
+
+<ListItem>
+<Para>
+<Literal>QString</Literal> now supports the <Literal>*</Literal> and
+<Literal>*=</Literal> operators that behave as they do for Python strings.
+</Para>
+</ListItem>
+
+<ListItem>
+<Para>
+<Literal>QString</Literal> is more interoperable with Python string and unicode
+objects. For example they can be passed as arguments to
+<Literal>open()</Literal> and to most (but not all) string methods.
+</Para>
+</ListItem>
+
+<ListItem>
+<Para>
+<Literal>QPopupMenu</Literal> (and sub-classes) instances now transfer
+ownership of the menu to Python in the call to <Literal>exec_loop()</Literal>.
+This means the menu's resources are all released when the Python wrapper is
+garbage collected without needing to call
+<Literal>QObject.deleteLater()</Literal>.
+</Para>
+</ListItem>
+
+<ListItem>
+<Para>
+<Literal>QObject.sender()</Literal> now handles Python signals.
+</Para>
+</ListItem>
+
+<ListItem>
+<Para>
+The missing <Literal>MacintoshVersion</Literal> enum has been added.
+</Para>
+</ListItem>
+
+<ListItem>
+<Para>
+<Literal>PYQT_BUILD</Literal> has been removed.
+</Para>
+</ListItem>
+
+<ListItem>
+<Para>
+The convention for converting between a C/C++ null pointer and Python's
+<Literal>None</Literal> object has now been universally applied. In previous
+versions a null pointer to, for example, a Qt list container would often be
+converted to an empty list rather than <Literal>None</Literal>.
+</Para>
+</ListItem>
+
+</ItemizedList>
+</Sect2>
+</Sect1>
+
+
+<Sect1><Title>Other PyQt Goodies</Title>
+<Sect2><Title>Using Qt Designer</Title>
+<Para>
+Qt Designer is a GPL'ed GUI design editor provided by Trolltech as part of Qt.
+It generates an XML description of a GUI design. Qt includes
+<Literal>uic</Literal> which generates C++ code from that XML.
+</Para>
+
+<Para>
+PyQt includes <Literal>pyuic</Literal> which generates Python code from the
+same XML. The Python code is self contained and can be executed immediately.
+</Para>
+
+<Para>
+It is sometimes useful to be able to include some specific Python code in the
+output generated by <Literal>pyuic</Literal>. For example, if you are using
+custom widgets, <Literal>pyuic</Literal> has no way of knowing the name of the
+Python module containing the widget and so cannot generate the required
+<Literal>import</Literal> statement. To help get around this,
+<Literal>pyuic</Literal> will extract any lines entered in the
+<Literal>Comment</Literal> field of Qt Designer's
+<Literal>Form Settings</Literal> dialog that begin with
+<Literal>Python:</Literal> and copies them to the generated output.
+</Para>
+
+<Para>
+Here's a simple example showing the contents of the <Literal>Comment</Literal>
+field.
+</Para>
+
+<ProgramListing>
+This comment will be ignored by pyuic.
+Python:
+Python:# Import our custom widget.
+Python:from foo import bar
+</ProgramListing>
+
+<Para>
+Here's the corresponding output from <Literal>pyuic</Literal>.
+</Para>
+
+<ProgramListing>
+from qt import *
+
+# Import our custom widget.
+from foo import bar
+</ProgramListing>
+
+<Para>
+Thanks to Christian Bird, <Literal>pyuic</Literal> will extract Python code
+entered using Qt Designer to implement slots. In Qt Designer, when you need to
+edit a slot and the source editor appears, enter Python code between the curly
+braces. Don't worry about the correct starting indent level, each line is
+prepended with a correct indentation.
+</Para>
+
+<Para>
+Make sure that the <Literal>ui.h</Literal> file is in the same directory as the
+<Literal>.ui</Literal> file when using <Literal>pyuic</Literal>. The
+<Literal>.ui</Literal> file implies the name of the <Literal>.ui.h</Literal>
+file so there is no need to specify it on the command line.
+</Para>
+
+<Para>
+Here's an example of a simple slot.
+</Para>
+
+<ProgramListing>
+void DebMainWindowFrm::browsePushButtonClicked()
+{
+if self.debugging:
+ QMessageBox.critical(self, "Event", "browse pushbutton was clicked!")
+}
+</ProgramListing>
+
+<Para>
+Here is the resulting code when <Literal>pyuic</Literal> is run.
+</Para>
+
+<ProgramListing>
+class DebMainWindowFrm(QMainWindow):
+ ...stuff...
+ def browsePushButtonClicked(self):
+ if self.debugging:
+ QMessageBox.critical(self, "Event", "browse pushbutton was clicked!")
+</ProgramListing>
+
+<Para>
+Note that indenting is as normal and that <Literal>self</Literal> and all other
+parameters passed to the slot are available.
+</Para>
+
+<Para>
+If you use this, you will need to turn off all of the fancy options for the C++
+editor in Designer as it tries to force C++ syntax and that's naturally
+annoying when trying to code in Python.
+</Para>
+</Sect2>
+
+<Sect2><Title>Using Qt Linguist</Title>
+<Para>
+Qt includes the <Literal>lupdate</Literal> program which parses C++ source
+files converting calls to the <Literal>QT_TR_NOOP()</Literal> and
+<Literal>QT_TRANSLATE_NOOP()</Literal> macros to <Literal>.ts</Literal>
+language source files. The <Literal>lrelease</Literal> program is then used to
+generate <Literal>.qm</Literal> binary language files that are distributed with
+your application.
+</Para>
+
+<Para>
+Thanks to Detlev Offenbach, PyQt includes the <Literal>pylupdate</Literal>
+program. This generates the same <Literal>.ts</Literal> language source files
+from your PyQt source files.
+</Para>
+</Sect2>
+</Sect1>
+
+
+<Sect1><Title>Deploying Commercial PyQt Applications</Title>
+<Para>
+When deploying commercial PyQt applications it is necessary to discourage users
+from accessing the underlying PyQt modules for themselves. A user that used
+the modules shipped with your application to develop new applications would
+themselves be considered a developer and would need their own commercial Qt and
+PyQt licenses.
+</Para>
+
+<Para>
+One solution to this problem is the
+<ULink url="http://www.riverbankcomputing.co.uk/vendorid/">VendorID</ULink>
+package. This allows you to build Python extension modules that can only be
+imported by a digitally signed custom interpreter. The package enables you to
+create such an interpreter with your application embedded within it. The
+result is an interpreter that can only run your application, and PyQt modules
+that can only be imported by that interpreter. You can use the package to
+similarly restrict access to any extension module.
+</Para>
+
+<Para>
+In order to build PyQt with support for the VendorID package, pass the
+<Literal>-i</Literal> command line flag to <Literal>configure.py</Literal>.
+</Para>
+</Sect1>
+
+<Sect1><Title><Literal>pyqtconfig</Literal> and Build System Support</Title>
+<Para>
+The SIP build system (ie. the <Literal>sipconfig</Literal> module) is described
+in the SIP documentation. PyQt includes the <Literal>pyqtconfig</Literal>
+module that can be used by configuration scripts of other bindings that are
+built on top of PyQt.
+</Para>
+
+<Para>
+The <Literal>pyqtconfig</Literal> module contains the following classes:
+</Para>
+
+<VariableList>
+<VarListEntry>
+<Term><Literal>Configuration(sipconfig.Configuration)</Literal></Term>
+<ListItem>
+<Para>
+This class encapsulates additional configuration values, specific to PyQt, that
+can be accessed as instance variables.
+</Para>
+
+<Para>
+The following configuration values are provided (in addition to those provided
+by the <Literal>sipconfig.Configuration</Literal> class):
+</Para>
+<VariableList>
+
+<VarListEntry>
+<Term><Literal>pyqt_bin_dir</Literal></Term>
+<ListItem>
+<Para>
+The name of the directory containing the <Literal>pyuic</Literal> and
+<Literal>pylupdate</Literal> executables.
+</Para>
+<Para></Para><Para></Para>
+</ListItem>
+</VarListEntry>
+
+<VarListEntry>
+<Term><Literal>pyqt_config_args</Literal></Term>
+<ListItem>
+<Para>
+The command line passed to <Literal>configure.py</Literal> when PyQt was
+configured.
+</Para>
+<Para></Para><Para></Para>
+</ListItem>
+</VarListEntry>
+
+<VarListEntry>
+<Term><Literal>pyqt_mod_dir</Literal></Term>
+<ListItem>
+<Para>
+The name of the directory containing the PyQt modules.
+</Para>
+<Para></Para><Para></Para>
+</ListItem>
+</VarListEntry>
+
+<VarListEntry>
+<Term><Literal>pyqt_modules</Literal></Term>
+<ListItem>
+<Para>
+A string containing the names of the PyQt modules that were installed.
+</Para>
+<Para></Para><Para></Para>
+</ListItem>
+</VarListEntry>
+
+<VarListEntry>
+<Term><Literal>pyqt_qt_sip_flags</Literal></Term>
+<ListItem>
+<Para>
+A string of the SIP flags used to generate the code for the
+<Literal>qt</Literal> module and which should be added to those needed by any
+module that imports the <Literal>qt</Literal> module.
+</Para>
+<Para></Para><Para></Para>
+</ListItem>
+</VarListEntry>
+
+<VarListEntry>
+<Term><Literal>pyqt_qtaxcontainer_sip_flags</Literal></Term>
+<ListItem>
+<Para>
+A string of the SIP flags used to generate the code for the
+<Literal>qtaxcontainer</Literal> module and which should be added to those
+needed by any module that imports the <Literal>qtaxcontainer</Literal> module.
+</Para>
+<Para></Para><Para></Para>
+</ListItem>
+</VarListEntry>
+
+<VarListEntry>
+<Term><Literal>pyqt_qtcanvas_sip_flags</Literal></Term>
+<ListItem>
+<Para>
+A string of the SIP flags used to generate the code for the
+<Literal>qtcanvas</Literal> module and which should be added to those needed by
+any module that imports the <Literal>qtcanvas</Literal> module.
+</Para>
+<Para></Para><Para></Para>
+</ListItem>
+</VarListEntry>
+
+<VarListEntry>
+<Term><Literal>pyqt_qtext_sip_flags</Literal></Term>
+<ListItem>
+<Para>
+A string of the SIP flags used to generate the code for the
+<Literal>qtext</Literal> module and which should be added to those needed by
+any module that imports the <Literal>qtext</Literal> module.
+</Para>
+<Para></Para><Para></Para>
+</ListItem>
+</VarListEntry>
+
+<VarListEntry>
+<Term><Literal>pyqt_qtgl_sip_flags</Literal></Term>
+<ListItem>
+<Para>
+A string of the SIP flags used to generate the code for the
+<Literal>qtgl</Literal> module and which should be added to those needed by any
+module that imports the <Literal>qtgl</Literal> module.
+</Para>
+<Para></Para><Para></Para>
+</ListItem>
+</VarListEntry>
+
+<VarListEntry>
+<Term><Literal>pyqt_qtnetwork_sip_flags</Literal></Term>
+<ListItem>
+<Para>
+A string of the SIP flags used to generate the code for the
+<Literal>qtnetwork</Literal> module and which should be added to those needed
+by any module that imports the <Literal>qtnetwork</Literal> module.
+</Para>
+<Para></Para><Para></Para>
+</ListItem>
+</VarListEntry>
+
+<VarListEntry>
+<Term><Literal>pyqt_qtsql_sip_flags</Literal></Term>
+<ListItem>
+<Para>
+A string of the SIP flags used to generate the code for the
+<Literal>qtsql</Literal> module and which should be added to those needed by
+any module that imports the <Literal>qtsql</Literal> module.
+</Para>
+<Para></Para><Para></Para>
+</ListItem>
+</VarListEntry>
+
+<VarListEntry>
+<Term><Literal>pyqt_qttable_sip_flags</Literal></Term>
+<ListItem>
+<Para>
+A string of the SIP flags used to generate the code for the
+<Literal>qttable</Literal> module and which should be added to those needed by
+any module that imports the <Literal>qttable</Literal> module.
+</Para>
+<Para></Para><Para></Para>
+</ListItem>
+</VarListEntry>
+
+<VarListEntry>
+<Term><Literal>pyqt_qtui_sip_flags</Literal></Term>
+<ListItem>
+<Para>
+A string of the SIP flags used to generate the code for the
+<Literal>qtui</Literal> module and which should be added to those needed by any
+module that imports the <Literal>qtui</Literal> module.
+</Para>
+<Para></Para><Para></Para>
+</ListItem>
+</VarListEntry>
+
+<VarListEntry>
+<Term><Literal>pyqt_qtxml_sip_flags</Literal></Term>
+<ListItem>
+<Para>
+A string of the SIP flags used to generate the code for the
+<Literal>qtxml</Literal> module and which should be added to those needed by
+any module that imports the <Literal>qtxml</Literal> module.
+</Para>
+<Para></Para><Para></Para>
+</ListItem>
+</VarListEntry>
+
+<VarListEntry>
+<Term><Literal>pyqt_sip_dir</Literal></Term>
+<ListItem>
+<Para>
+The name of the base directory where the <Literal>.sip</Literal> files for each
+of the PyQt modules is installed. A sub-directory exists with the same name as
+the module.
+</Para>
+<Para></Para><Para></Para>
+</ListItem>
+</VarListEntry>
+
+<VarListEntry>
+<Term><Literal>pyqt_version</Literal></Term>
+<ListItem>
+<Para>
+The PyQt version as a 3 part hexadecimal number (eg. v3.10 is represented as
+<Literal>0x030a00</Literal>).
+</Para>
+<Para></Para><Para></Para>
+</ListItem>
+</VarListEntry>
+
+<VarListEntry>
+<Term><Literal>pyqt_version_str</Literal></Term>
+<ListItem>
+<Para>
+The PyQt version as a string. For development snapshots it will start with
+<Literal>snapshot-</Literal>.
+</Para>
+<Para></Para><Para></Para>
+</ListItem>
+</VarListEntry>
+
+</VariableList>
+</ListItem>
+</VarListEntry>
+
+<VarListEntry>
+<Term><Literal>QtModuleMakefile(sipconfig.SIPModuleMakefile)</Literal></Term>
+<ListItem>
+<Para>
+The Makefile class for modules that import the <Literal>qt</Literal> module.
+</Para>
+<VariableList>
+<VarListEntry>
+<Term><Literal>finalise(self)</Literal></Term>
+<ListItem>
+<Para>
+This is a reimplementation of <Literal>sipconfig.Makefile.finalise()</Literal>.
+</Para>
+<Para></Para><Para></Para>
+</ListItem>
+</VarListEntry>
+</VariableList>
+</ListItem>
+</VarListEntry>
+
+<VarListEntry>
+<Term><Literal>QtAxContainerModuleMakefile(QtModuleMakefile)</Literal></Term>
+<ListItem>
+<Para>
+The Makefile class for modules that import the <Literal>qtaxcontainer</Literal>
+module.
+</Para>
+<VariableList>
+<VarListEntry>
+<Term><Literal>finalise(self)</Literal></Term>
+<ListItem>
+<Para>
+This is a reimplementation of <Literal>sipconfig.Makefile.finalise()</Literal>.
+</Para>
+<Para></Para><Para></Para>
+</ListItem>
+</VarListEntry>
+</VariableList>
+</ListItem>
+</VarListEntry>
+
+<VarListEntry>
+<Term><Literal>QtCanvasModuleMakefile(QtModuleMakefile)</Literal></Term>
+<ListItem>
+<Para>
+The Makefile class for modules that import the <Literal>qtcanvas</Literal>
+module.
+</Para>
+<VariableList>
+<VarListEntry>
+<Term><Literal>finalise(self)</Literal></Term>
+<ListItem>
+<Para>
+This is a reimplementation of <Literal>sipconfig.Makefile.finalise()</Literal>.
+</Para>
+<Para></Para><Para></Para>
+</ListItem>
+</VarListEntry>
+</VariableList>
+</ListItem>
+</VarListEntry>
+
+<VarListEntry>
+<Term><Literal>QtExtModuleMakefile(QtModuleMakefile)</Literal></Term>
+<ListItem>
+<Para>
+The Makefile class for modules that import the <Literal>qtext</Literal> module.
+</Para>
+<VariableList>
+<VarListEntry>
+<Term><Literal>finalise(self)</Literal></Term>
+<ListItem>
+<Para>
+This is a reimplementation of <Literal>sipconfig.Makefile.finalise()</Literal>.
+</Para>
+<Para></Para><Para></Para>
+</ListItem>
+</VarListEntry>
+</VariableList>
+</ListItem>
+</VarListEntry>
+
+<VarListEntry>
+<Term><Literal>QtGLModuleMakefile(QtModuleMakefile)</Literal></Term>
+<ListItem>
+<Para>
+The Makefile class for modules that import the <Literal>qtgl</Literal> module.
+</Para>
+<VariableList>
+<VarListEntry>
+<Term><Literal>finalise(self)</Literal></Term>
+<ListItem>
+<Para>
+This is a reimplementation of <Literal>sipconfig.Makefile.finalise()</Literal>.
+</Para>
+<Para></Para><Para></Para>
+</ListItem>
+</VarListEntry>
+</VariableList>
+</ListItem>
+</VarListEntry>
+
+<VarListEntry>
+<Term><Literal>QtNetworkModuleMakefile(QtModuleMakefile)</Literal></Term>
+<ListItem>
+<Para>
+The Makefile class for modules that import the <Literal>qtnetwork</Literal>
+module.
+</Para>
+<VariableList>
+<VarListEntry>
+<Term><Literal>finalise(self)</Literal></Term>
+<ListItem>
+<Para>
+This is a reimplementation of <Literal>sipconfig.Makefile.finalise()</Literal>.
+</Para>
+<Para></Para><Para></Para>
+</ListItem>
+</VarListEntry>
+</VariableList>
+</ListItem>
+</VarListEntry>
+
+<VarListEntry>
+<Term><Literal>QtTableModuleMakefile(QtModuleMakefile)</Literal></Term>
+<ListItem>
+<Para>
+The Makefile class for modules that import the <Literal>qttable</Literal>
+module.
+</Para>
+<VariableList>
+<VarListEntry>
+<Term><Literal>finalise(self)</Literal></Term>
+<ListItem>
+<Para>
+This is a reimplementation of <Literal>sipconfig.Makefile.finalise()</Literal>.
+</Para>
+<Para></Para><Para></Para>
+</ListItem>
+</VarListEntry>
+</VariableList>
+</ListItem>
+</VarListEntry>
+
+<VarListEntry>
+<Term><Literal>QtSQLModuleMakefile(QtTableModuleMakefile)</Literal></Term>
+<ListItem>
+<Para>
+The Makefile class for modules that import the <Literal>qtsql</Literal> module.
+</Para>
+<VariableList>
+<VarListEntry>
+<Term><Literal>finalise(self)</Literal></Term>
+<ListItem>
+<Para>
+This is a reimplementation of <Literal>sipconfig.Makefile.finalise()</Literal>.
+</Para>
+<Para></Para><Para></Para>
+</ListItem>
+</VarListEntry>
+</VariableList>
+</ListItem>
+</VarListEntry>
+
+<VarListEntry>
+<Term><Literal>QtUIModuleMakefile(QtModuleMakefile)</Literal></Term>
+<ListItem>
+<Para>
+The Makefile class for modules that import the <Literal>qtui</Literal> module.
+</Para>
+<VariableList>
+<VarListEntry>
+<Term><Literal>finalise(self)</Literal></Term>
+<ListItem>
+<Para>
+This is a reimplementation of <Literal>sipconfig.Makefile.finalise()</Literal>.
+</Para>
+<Para></Para><Para></Para>
+</ListItem>
+</VarListEntry>
+</VariableList>
+</ListItem>
+</VarListEntry>
+
+<VarListEntry>
+<Term><Literal>QtXMLModuleMakefile(QtModuleMakefile)</Literal></Term>
+<ListItem>
+<Para>
+The Makefile class for modules that import the <Literal>qtxml</Literal> module.
+</Para>
+<VariableList>
+<VarListEntry>
+<Term><Literal>finalise(self)</Literal></Term>
+<ListItem>
+<Para>
+This is a reimplementation of <Literal>sipconfig.Makefile.finalise()</Literal>.
+</Para>
+<Para></Para><Para></Para>
+</ListItem>
+</VarListEntry>
+</VariableList>
+</ListItem>
+</VarListEntry>
+
+</VariableList>
+</Sect1>
+<Sect1><Title>Things to be Aware Of</Title>
+<Sect2><Title>super and Wrapped Classes</Title>
+<Para>
+Internally PyQt implements a lazy technique for attribute lookup where
+attributes are only placed in type and instance dictionaries when they are
+first referenced. This technique is needed to reduce the time taken to import
+large modules such as PyQt.
+</Para>
+
+<Para>
+In most circumstances this technique is transparent to an application. The
+exception is when <Literal>super</Literal> is used with a PyQt class. The way
+that <Literal>super</Literal> is currently implemented means that the lazy
+lookup is bypassed resulting in <Literal>AttributeError</Literal> exceptions
+unless the attribute has been previously referenced.
+</Para>
+
+<Para>
+Note that this restriction applies to any class wrapped by SIP and not just
+PyQt.
+</Para>
+</Sect2>
+
+
+<Sect2><Title>Python Strings, Qt Strings and Unicode</Title>
+<Para>
+Unicode support was added to Qt in v2.0 and to Python in v1.6. In Qt, Unicode
+support is implemented using the <Literal>QString</Literal> class. It is
+important to understand that <Literal>QString</Literal>s, Python string objects
+and Python Unicode objects are all different but conversions between them are
+automatic in almost all cases and easy to achieve manually when needed.
+</Para>
+
+<Para>
+Whenever PyQt expects a <Literal>QString</Literal> as a function argument, a
+Python string object or a Python Unicode object can be provided instead, and
+PyQt will do the necessary conversion automatically.
+</Para>
+
+<Para>
+You may also manually convert Python string and Unicode objects to
+<Literal>QString</Literal>s by using the <Literal>QString</Literal> constructor
+as demonstrated in the following code fragment.
+</Para>
+
+<ProgramListing>
+qs1 = QString('Converted Python string object')
+qs2 = QString(u'Converted Python Unicode object')
+</ProgramListing>
+
+<Para>
+In order to convert a <Literal>QString</Literal> to a Python string object use
+the Python <Literal>str()</Literal> function. Applying
+<Literal>str()</Literal> to a null <Literal>QString</Literal> and an empty
+<Literal>QString</Literal> both result in an empty Python string object.
+</Para>
+
+<Para>
+In order to convert a <Literal>QString</Literal> to a Python Unicode object use
+the Python <Literal>unicode()</Literal> function. Applying
+<Literal>unicode()</Literal> to a null <Literal>QString</Literal> and an empty
+<Literal>QString</Literal> both result in an empty Python Unicode object.
+</Para>
+</Sect2>
+
+<Sect2><Title>Access to Protected Member Functions</Title>
+<Para>
+When an instance of a C++ class is not created from Python it is not possible
+to access the protected member functions, or emit the signals, of that
+instance. Attempts to do so will raise a Python exception. Also, any Python
+methods corresponding to the instance's virtual member functions will never be
+called.
+</Para>
+</Sect2>
+
+<Sect2><Title><Literal>None</Literal> and <Literal>NULL</Literal></Title>
+<Para>
+Throughout the bindings, the <Literal>None</Literal> value can be specified
+wherever <Literal>NULL</Literal> is acceptable to the underlying C++ code.
+</Para>
+
+<Para>
+Equally, <Literal>NULL</Literal> is converted to <Literal>None</Literal>
+whenever it is returned by the underlying C++ code.
+</Para>
+</Sect2>
+
+
+<Sect2><Title>Support for C++ <Literal>void *</Literal> Data Types</Title>
+<Para>
+PyQt represents <Literal>void *</Literal> values as objects of type
+<Literal>sip.voidptr</Literal>. Such values are often used to pass the
+addresses of external objects between different Python modules. To make this
+easier, a Python integer (or anything that Python can convert to an integer)
+can be used whenever a <Literal>sip.voidptr</Literal> is expected.
+</Para>
+<Para>
+A <Literal>sip.voidptr</Literal> may be converted to a Python integer by using
+the <Literal>int()</Literal> builtin function.
+</Para>
+<Para>
+A <Literal>sip.voidptr</Literal> may be converted to a Python string by using
+its <Literal>asstring()</Literal> method. The <Literal>asstring()</Literal>
+method takes an integer argument which is the length of the data in bytes.
+</Para>
+</Sect2>
+
+
+<Sect2><Title>Support for Threads</Title>
+<Para>
+PyQt implements the full set of Qt's thread classes. Python, of course, also
+has its own thread extension modules. If you are using SIP v4 (or later) and
+Python v2.3.5 (or later) then PyQt does not impose any additional restrictions.
+(Read the relevant part of the Qt documentation to understand the restrictions
+imposed by the Qt API.)
+</Para>
+<Para>
+If you are using earlier versions of either SIP or Python then it is possible
+to use either of the APIs so long as you follow some simple rules.
+</Para>
+<ItemizedList>
+<ListItem>
+<Para>
+If you use the Qt API then the very first <Literal>import</Literal> of one of
+the PyQt modules must be done from the main thread.
+</Para>
+</ListItem>
+<ListItem>
+<Para>
+If you use the Python API then all calls to PyQt (including any
+<Literal>import</Literal>s) must be done from one thread only. Therefore, if
+you want to make calls to PyQt from several threads then you must use the Qt
+API.
+</Para>
+</ListItem>
+<ListItem>
+<Para>
+If you want to use both APIs in the same application then all calls to PyQt
+must be done from threads created using the Qt API.
+</Para>
+</ListItem>
+</ItemizedList>
+<Para>
+The above comments actually apply to any SIP generated module, not just PyQt.
+</Para>
+</Sect2>
+
+<Sect2><Title>Garbage Collection</Title>
+<Para>
+C++ does not garbage collect unreferenced class instances, whereas Python does.
+In the following C++ fragment both colours exist even though the first can no
+longer be referenced from within the program:
+</Para>
+
+<ProgramListing>
+c = new QColor();
+c = new QColor();
+</ProgramListing>
+
+<Para>
+In the corresponding Python fragment, the first colour is destroyed when
+the second is assigned to <Literal>c</Literal>:
+</Para>
+
+<ProgramListing>
+c = QColor()
+c = QColor()
+</ProgramListing>
+
+<Para>
+In Python, each colour must be assigned to different names. Typically this
+is done within class definitions, so the code fragment would be something like:
+</Para>
+
+<ProgramListing>
+self.c1 = QColor()
+self.c2 = QColor()
+</ProgramListing>
+
+<Para>
+Sometimes a Qt class instance will maintain a pointer to another instance and
+will eventually call the destructor of that second instance. The most common
+example is that a <Literal>QObject</Literal> (and any of its sub-classes) keeps
+pointers to its children and will automatically call their destructors. In
+these cases, the corresponding Python object will also keep a reference to the
+corresponding child objects.
+</Para>
+
+<Para>
+So, in the following Python fragment, the first <Literal>QLabel</Literal> is
+not destroyed when the second is assigned to <Literal>l</Literal> because the
+parent <Literal>QWidget</Literal> still has a reference to it.
+</Para>
+
+<ProgramListing>
+p = QWidget()
+l = QLabel('First label',p)
+l = QLabel('Second label',p)
+</ProgramListing>
+</Sect2>
+
+<Sect2><Title>C++ Variables</Title>
+<Para>
+Access to C++ variables is supported. They are accessed as Python instance
+variables. For example:
+</Para>
+
+<ProgramListing>
+tab = QTab()
+tab.label = "First Tab"
+tab.r = QRect(10,10,75,30)
+</ProgramListing>
+
+<Para>
+Global variables and static class variables are effectively read-only. They
+can be assigned to, but the underlying C++ variable will not be changed. This
+may change in the future.
+</Para>
+
+<Para>
+Access to protected C++ class variables is not supported. This may change in
+the future.
+</Para>
+</Sect2>
+
+<Sect2><Title>Multiple Inheritance</Title>
+<Para>
+It is not possible to define a new Python class that sub-classes from more than
+one Qt class.
+</Para>
+</Sect2>
+
+<Sect2><Title>i18n Support</Title>
+<Para>
+Qt implements i18n support through the Qt Linguist application, the
+<Literal>QTranslator</Literal> class, and the
+<Literal>QApplication::translate()</Literal>, <Literal>QObject::tr()</Literal>
+and <Literal>QObject::trUtf8()</Literal> methods. Usually the
+<Literal>tr()</Literal> method is used to obtain the correct translation of a
+message. The translation process uses a message context to allow the same
+message to be translated differently. <Literal>tr()</Literal> is actually
+generated by <Literal>moc</Literal> and uses the hardcoded class name as the
+context. On the other hand, <Literal>QApplication::translate()</Literal>
+allows to context to be explicitly stated.
+</Para>
+
+<Para>
+Unfortunately, because of the way Qt implents <Literal>tr()</Literal> (and
+<Literal>trUtf8()</Literal>) it is not possible for PyQt to exactly reproduce
+its behavour. The PyQt implementation of <Literal>tr()</Literal> (and
+<Literal>trUtf8()</Literal>) uses the class name of the instance as the
+context. The key difference, and the source of potential problems, is that the
+context is determined dynamically in PyQt, but is hardcoded in Qt. In other
+words, the context of a translation may change depending on an instance's class
+hierarchy.
+</Para>
+
+<ProgramListing>
+class A(QObject):
+ def __init__(self):
+ QObject.__init__(self)
+
+ def hello(self):
+ return self.tr("Hello")
+
+class B(A):
+ def __init__(self):
+ A.__init__(self)
+
+a = A()
+a.hello()
+
+b = B()
+b.hello()
+</ProgramListing>
+
+<Para>
+In the above the message is translated by <Literal>a.hello()</Literal> using a
+context of <Literal>A</Literal>, and by <Literal>b.hello()</Literal> using a
+context of <Literal>B</Literal>. In the equivalent C++ version the context
+would be <Literal>A</Literal> in both cases.
+</Para>
+
+<Para>
+The PyQt behaviour is unsatisfactory and may be changed in the future. It is
+recommended that <Literal>QApplication.translate()</Literal> be used in
+preference to <Literal>tr()</Literal> (and <Literal>trUtf8()</Literal>). This
+is guaranteed to work with current and future versions of PyQt and makes it
+much easier to share message files between Python and C++ code. Below is the
+alternative implementation of <Literal>A</Literal> that uses
+<Literal>QApplication.translate()</Literal>.
+</Para>
+
+<ProgramListing>
+class A(QObject):
+ def __init__(self):
+ QObject.__init__(self)
+
+ def hello(self):
+ return qApp.translate("A","Hello")
+</ProgramListing>
+
+<Para>
+Note that the code generated by <Literal>pyuic</Literal> uses
+<Literal>QApplication.translate()</Literal>.
+</Para>
+</Sect2>
+</Sect1>
+
+
+<Sect1><Title>Signal and Slot Support</Title>
+<Para>
+A signal may be either a Qt signal (specified using
+<Literal>SIGNAL()</Literal>) or a Python signal (specified using
+<Literal>PYSIGNAL()</Literal>).
+</Para>
+
+<Para>
+A slot can be either a Python callable object, a Qt signal (specified using
+<Literal>SIGNAL()</Literal>), a Python signal (specified using
+<Literal>PYSIGNAL()</Literal>), or a Qt slot (specified using
+<Literal>SLOT()</Literal>).
+</Para>
+
+<Para>
+You connect signals to slots (and other signals) as you would from C++. For
+example:
+</Para>
+
+<ProgramListing>
+QObject.connect(a,SIGNAL("QtSig()"),pyFunction)
+QObject.connect(a,SIGNAL("QtSig()"),pyClass.pyMethod)
+QObject.connect(a,SIGNAL("QtSig()"),PYSIGNAL("PySig"))
+QObject.connect(a,SIGNAL("QtSig()"),SLOT("QtSlot()"))
+QObject.connect(a,PYSIGNAL("PySig"),pyFunction)
+QObject.connect(a,PYSIGNAL("PySig"),pyClass.pyMethod)
+QObject.connect(a,PYSIGNAL("PySig"),SIGNAL("QtSig()"))
+QObject.connect(a,PYSIGNAL("PySig"),SLOT("QtSlot()"))
+</ProgramListing>
+
+<Para>
+When a slot is a Python method that corresponds to a Qt slot then a signal can
+be connected to either the Python method or the Qt slot. The following
+connections achieve the same effect.
+</Para>
+
+<ProgramListing>
+sbar = QScrollBar()
+lcd = QLCDNumber()
+
+QObject.connect(sbar,SIGNAL("valueChanged(int)"),lcd.display)
+QObject.connect(sbar,SIGNAL("valueChanged(int)"),lcd,SLOT("display(int)"))
+</ProgramListing>
+
+<Para>
+The difference is that the second connection is made at the C++ level and is
+more efficient.
+</Para>
+
+<Para>
+Disconnecting signals works in exactly the same way.
+</Para>
+
+<Para>
+Any instance of a class that is derived from the <Literal>QObject</Literal>
+class can emit a signal using the <Literal>emit</Literal> method. This takes
+two arguments. The first is the Python or Qt signal, the second is a Python
+tuple which are the arguments to the signal. For example:
+</Para>
+
+<ProgramListing>
+a.emit(SIGNAL("clicked()"),())
+a.emit(PYSIGNAL("pySig"),("Hello","World"))
+</ProgramListing>
+
+<Para>
+Note that when a slot is a Python callable object its reference count is not
+increased. This means that a class instance can be deleted without having to
+explicitly disconnect any signals connected to its methods. However, it also
+means that using lambda expressions as slots will not work unless you keep a
+separate reference to the expression to prevent it from being immediately
+garbage collected.
+</Para>
+
+<Para>
+Qt allows a signal to be connected to a slot that requires fewer arguments than
+the signal passes. The extra arguments are quietly discarded. Python slots
+can be used in the same way.
+</Para>
+</Sect1>
+
+
+<Sect1><Title>Static Member Functions</Title>
+<Para>
+Static member functions are implemented as Python class functions.
+For example the C++ static member function
+<Literal>QObject::connect()</Literal> is called from Python as
+<Literal>QObject.connect()</Literal> or <Literal>self.connect()</Literal> if
+called from a sub-class of <Literal>QObject</Literal>.
+</Para>
+</Sect1>
+
+
+<Sect1><Title>Enumerated Types</Title>
+<Para>
+Enumerated types are implemented as a set of simple variables corresponding to
+the separate enumerated values.
+</Para>
+
+<Para>
+When using an enumerated value the name of the class (or a sub-class) in which
+the enumerated type was defined in must be included. For example:
+</Para>
+
+<ProgramListing>
+Qt.SolidPattern
+QWidget.TabFocus
+QFrame.TabFocus
+</ProgramListing>
+</Sect1>
+
+
+<Sect1><Title>Module Reference Documentation</Title>
+<Para>
+The following sections should be used in conjunction with the normal class
+documentation - only the differences specific to the Python bindings are
+documented here.
+</Para>
+
+<Para>
+In these sections, <Emphasis>Not yet implemented</Emphasis>
+implies that the feature can be easily implemented if needed. <Emphasis>Not
+implemented</Emphasis> implies that the feature will not be implemented, either
+because it cannot be or because it is not appropriate.
+</Para>
+
+<Para>
+If a class is described as being <Emphasis>fully implemented</Emphasis> then
+all non-private member functions and all public class variables have been
+implemented.
+</Para>
+
+<Para>
+If an operator has been implemented then it is stated explicitly.
+</Para>
+
+<Para>
+Classes that are not mentioned have not yet been implemented.
+</Para>
+</Sect1>
+
+
+<Sect1><Title><Literal>qt</Literal> Module Reference</Title>
+<Sect2><Title>Qt Constants</Title>
+<Para>
+All constant values defined by Qt have equivalent constants defined to Python.
+</Para>
+</Sect2>
+<Sect2><Title>Qt (Qt v2+)</Title>
+<Para>
+<Literal>Qt</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QAccel</Title>
+<Para>
+<Literal>QAccel</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QAction (Qt v2.2+)</Title>
+<Para>
+<Literal>QAction</Literal> is fully implemented.
+</Para>
+
+</Sect2>
+<Sect2><Title>QActionGroup (Qt v2.2+)</Title>
+<Para>
+<Literal>QActionGroup</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QApplication</Title>
+<FuncSynopsis>
+ <FuncDef><Function>QApplication</Function></FuncDef>
+ <ParamDef>int &amp;<Parameter>argc</Parameter></ParamDef>
+ <ParamDef>char **<Parameter>argv</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+This takes one parameter which is a list of argument strings. Arguments
+used by Qt are removed from the list.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef><Function>QApplication</Function></FuncDef>
+ <ParamDef>int &amp;<Parameter>argc</Parameter></ParamDef>
+ <ParamDef>char **<Parameter>argv</Parameter></ParamDef>
+ <ParamDef>bool <Parameter>GUIenabled</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+This takes two parameters, the first of which is a list of argument strings.
+Arguments used by Qt are removed from the list.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef><Function>QApplication</Function></FuncDef>
+ <ParamDef>int &amp;<Parameter>argc</Parameter></ParamDef>
+ <ParamDef>char **<Parameter>argv</Parameter></ParamDef>
+ <ParamDef>Type <Parameter>type</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+This takes two parameters, the first of which is a list of argument strings.
+Arguments used by Qt are removed from the list. (Qt v2.2+)
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>int <Function>exec</Function></FuncDef>
+ <ParamDef></ParamDef>
+</FuncSynopsis>
+<Para>
+This has been renamed to <Literal>exec_loop</Literal> in Python.
+</Para>
+</Sect2>
+<Sect2><Title>QAssistantClient (Qt v3.1+)</Title>
+<Para>
+<Literal>QAssistantClient</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QBitmap</Title>
+<Para>
+<Literal>QBitmap</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QBrush</Title>
+<Para>
+<Literal>QBrush</Literal> is fully implemented, including the Python
+<Literal>==</Literal> and <Literal>!=</Literal> operators.
+</Para>
+</Sect2>
+<Sect2><Title>QButton</Title>
+<Para>
+<Literal>QButton</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QButtonGroup</Title>
+<Para>
+<Literal>QButtonGroup</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QByteArray</Title>
+<Para>
+A Python string can be used whenever a <Literal>QByteArray</Literal> can be
+used. A <Literal>QByteArray</Literal> can be converted to a Python string
+using the Python <Literal>str()</Literal> function.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>QByteArray &<Function>assign</Function></FuncDef>
+ <ParamDef>const char *<Parameter>data</Parameter></ParamDef>
+ <ParamDef>uint <Parameter>size</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+Not implemented.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>char &<Function>at</Function></FuncDef>
+ <ParamDef>uint <Parameter>i</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+Not yet implemented.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>int <Function>contains</Function></FuncDef>
+ <ParamDef>const char &<Parameter>d</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+Not yet implemented.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>bool <Function>fill</Function></FuncDef>
+ <ParamDef>const char &<Parameter>d</Parameter></ParamDef>
+ <ParamDef>int <Parameter>size</Parameter> = -1</ParamDef>
+</FuncSynopsis>
+<Para>
+Not yet implemented.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>int <Function>find</Function></FuncDef>
+ <ParamDef>const char &<Parameter>d</Parameter></ParamDef>
+ <ParamDef>uint <Parameter>i</Parameter> = 0</ParamDef>
+</FuncSynopsis>
+<Para>
+Not yet implemented.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>void <Function>resetRawData</Function></FuncDef>
+ <ParamDef>const char *<Parameter>data</Parameter></ParamDef>
+ <ParamDef>uint<Parameter>size</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+Not implemented.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>QByteArray &<Function>setRawData</Function></FuncDef>
+ <ParamDef>const char *<Parameter>data</Parameter></ParamDef>
+ <ParamDef>uint<Parameter>size</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+Not implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QCDEStyle (Qt v2+)</Title>
+<Para>
+<Literal>QCDEStyle</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QCheckBox</Title>
+<Para>
+<Literal>QCheckBox</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QClipboard</Title>
+<FuncSynopsis>
+ <FuncDef>void *<Function>data</Function> const</FuncDef>
+ <ParamDef>const char *<Parameter>format</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+Not yet implemented (Qt v1.x).
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>void <Function>setData</Function></FuncDef>
+ <ParamDef>const char *<Parameter>format</Parameter></ParamDef>
+ <ParamDef>void *<Parameter></Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+Not yet implemented (Qt v1.x).
+</Para>
+</Sect2>
+<Sect2><Title>QColor</Title>
+<Para>
+The Python <Literal>==</Literal> and <Literal>!=</Literal> operators are
+supported.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>void <Function>getHsv</Function></FuncDef>
+ <ParamDef>int *<Parameter>h</Parameter></ParamDef>
+ <ParamDef>int *<Parameter>s</Parameter></ParamDef>
+ <ParamDef>int *<Parameter>v</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+This takes no parameters and returns the <Literal>h</Literal>,
+<Literal>s</Literal> and <Literal>v</Literal> values as a tuple.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>void <Function>getRgb</Function></FuncDef>
+ <ParamDef>int *<Parameter>r</Parameter></ParamDef>
+ <ParamDef>int *<Parameter>g</Parameter></ParamDef>
+ <ParamDef>int *<Parameter>b</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+This takes no parameters and returns the <Literal>r</Literal>,
+<Literal>g</Literal> and <Literal>b</Literal> values as a tuple.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>void <Function>hsv</Function></FuncDef>
+ <ParamDef>int *<Parameter>h</Parameter></ParamDef>
+ <ParamDef>int *<Parameter>s</Parameter></ParamDef>
+ <ParamDef>int *<Parameter>v</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+This takes no parameters and returns the <Literal>h</Literal>,
+<Literal>s</Literal> and <Literal>v</Literal> values as a tuple.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>void <Function>rgb</Function></FuncDef>
+ <ParamDef>int *<Parameter>r</Parameter></ParamDef>
+ <ParamDef>int *<Parameter>g</Parameter></ParamDef>
+ <ParamDef>int *<Parameter>b</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+This takes no parameters and returns the <Literal>r</Literal>,
+<Literal>g</Literal> and <Literal>b</Literal> values as a tuple.
+</Para>
+</Sect2>
+<Sect2><Title>QColorDialog (Qt v2+)</Title>
+<FuncSynopsis>
+ <FuncDef>static QRgb <Function>getRgba</Function></FuncDef>
+ <ParamDef>QRgb <Parameter>initial</Parameter></ParamDef>
+ <ParamDef>bool *<Parameter>ok</Parameter></ParamDef>
+ <ParamDef>QWidget *<Parameter>parent</Parameter> = 0</ParamDef>
+ <ParamDef>const char *<Parameter>name</Parameter> = 0</ParamDef>
+</FuncSynopsis>
+<Para>
+This takes the <Literal>initial</Literal>, <Literal>parent</Literal> and
+<Literal>name</Literal> parameters and returns a tuple containing the
+<Literal>QRgb</Literal> result and the <Literal>ok</Literal> value.
+</Para>
+</Sect2>
+<Sect2><Title>QColorGroup</Title>
+<Para>
+<Literal>QColorGroup</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QComboBox</Title>
+<Para>
+<Literal>QComboBox</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QCommonStyle (Qt v2+)</Title>
+<FuncSynopsis>
+ <FuncDef>virtual void <Function>getButtonShift</Function></FuncDef>
+ <ParamDef>int &amp;<Parameter>x</Parameter></ParamDef>
+ <ParamDef>int &amp;<Parameter>y</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+This takes no parameters and returns a tuple of the <Literal>x</Literal> and
+<Literal>y</Literal> values. (Qt v2)
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>virtual void <Function>tabbarMetrics</Function></FuncDef>
+ <ParamDef>const QTabBar *<Parameter>t</Parameter></ParamDef>
+ <ParamDef>int &amp;<Parameter>hframe</Parameter></ParamDef>
+ <ParamDef>int &amp;<Parameter>vframe</Parameter></ParamDef>
+ <ParamDef>int &amp;<Parameter>overlap</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+This takes only the <Literal>t</Literal> parameter and returns a tuple of the
+<Literal>hframe</Literal>, <Literal>vframe</Literal> and
+<Literal>overlap</Literal> values. (Qt v2)
+</Para>
+</Sect2>
+<Sect2><Title>QCString (Qt v2+)</Title>
+<Para>
+A Python string can be used whenever a <Literal>QCString</Literal> can be used.
+A <Literal>QCString</Literal> can be converted to a Python string using the
+Python <Literal>str()</Literal> function.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>QCString &amp;<Function>sprintf</Function></FuncDef>
+ <ParamDef>const char *<Parameter>format</Parameter></ParamDef>
+ <ParamDef>...</ParamDef>
+</FuncSynopsis>
+<Para>
+Not implemented.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>short <Function>toShort</Function></FuncDef>
+ <ParamDef>bool *<Parameter>ok</Parameter> = 0</ParamDef>
+</FuncSynopsis>
+<Para>
+This returns a tuple of the <Literal>short</Literal> result and the
+<Literal>ok</Literal> value.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>ushort <Function>toUShort</Function></FuncDef>
+ <ParamDef>bool *<Parameter>ok</Parameter> = 0</ParamDef>
+</FuncSynopsis>
+<Para>
+This returns a tuple of the <Literal>ushort</Literal> result and the
+<Literal>ok</Literal> value.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>int <Function>toInt</Function></FuncDef>
+ <ParamDef>bool *<Parameter>ok</Parameter> = 0</ParamDef>
+</FuncSynopsis>
+<Para>
+This returns a tuple of the <Literal>int</Literal> result and the
+<Literal>ok</Literal> value.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>uint <Function>toUInt</Function></FuncDef>
+ <ParamDef>bool *<Parameter>ok</Parameter> = 0</ParamDef>
+</FuncSynopsis>
+<Para>
+This returns a tuple of the <Literal>uint</Literal> result and the
+<Literal>ok</Literal> value.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>long <Function>toLong</Function></FuncDef>
+ <ParamDef>bool *<Parameter>ok</Parameter> = 0</ParamDef>
+</FuncSynopsis>
+<Para>
+This returns a tuple of the <Literal>long</Literal> result and the
+<Literal>ok</Literal> value.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>ulong <Function>toULong</Function></FuncDef>
+ <ParamDef>bool *<Parameter>ok</Parameter> = 0</ParamDef>
+</FuncSynopsis>
+<Para>
+This returns a tuple of the <Literal>ulong</Literal> result and the
+<Literal>ok</Literal> value.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>float <Function>toFloat</Function></FuncDef>
+ <ParamDef>bool *<Parameter>ok</Parameter> = 0</ParamDef>
+</FuncSynopsis>
+<Para>
+This returns a tuple of the <Literal>float</Literal> result and the
+<Literal>ok</Literal> value.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>double <Function>toDouble</Function></FuncDef>
+ <ParamDef>bool *<Parameter>ok</Parameter> = 0</ParamDef>
+</FuncSynopsis>
+<Para>
+This returns a tuple of the <Literal>double</Literal> result and the
+<Literal>ok</Literal> value.
+</Para>
+</Sect2>
+<Sect2><Title>QCursor</Title>
+<Para>
+<Literal>QCursor</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QDataStream</Title>
+<FuncSynopsis>
+ <FuncDef>QDataStream &amp;<Function>readBytes</Function></FuncDef>
+ <ParamDef>const char *&amp;<Parameter>s</Parameter></ParamDef>
+ <ParamDef>uint &amp;<Parameter>l</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+This takes no parameters. The <Literal>QDataStream</Literal> result and the
+data read are returned as a tuple.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>QDataStream &amp;<Function>readRawBytes</Function></FuncDef>
+ <ParamDef>const char *<Parameter>s</Parameter></ParamDef>
+ <ParamDef>uint <Parameter>l</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+This takes only the <Literal>l</Literal> parameter. The
+<Literal>QDataStream</Literal> result and the data read are returned as a
+tuple.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>QDataStream &amp;<Function>writeBytes</Function></FuncDef>
+ <ParamDef>const char *<Parameter>s</Parameter></ParamDef>
+ <ParamDef>uint <Parameter>len</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+<Literal>len</Literal> is derived from <Literal>s</Literal> and not passed as a
+parameter.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>QDataStream &amp;<Function>writeRawBytes</Function></FuncDef>
+ <ParamDef>const char *<Parameter>s</Parameter></ParamDef>
+ <ParamDef>uint <Parameter>len</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+<Literal>len</Literal> is derived from <Literal>s</Literal> and not passed as a
+parameter.
+</Para>
+</Sect2>
+<Sect2><Title>QDate</Title>
+<Para>
+The Python
+<Literal>==</Literal>, <Literal>!=</Literal>,
+<Literal>&lt;</Literal>, <Literal>&lt;=</Literal>,
+<Literal>&gt;</Literal>, <Literal>&gt;=</Literal>
+and <Literal>__nonzero__</Literal>
+operators are supported.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>int <Function>weekNumber</Function></FuncDef>
+ <ParamDef>int *<Parameter>yearNum</Parameter> = 0</ParamDef>
+</FuncSynopsis>
+<Para>
+This takes no parameters and returns the week number and the year number as a
+tuple. (Qt v3.1+)
+</Para>
+</Sect2>
+
+<Sect2><Title>QDateTime</Title>
+<Para>
+<Literal>QDateTime</Literal> is fully implemented, including the Python
+<Literal>==</Literal>, <Literal>!=</Literal>,
+<Literal>&lt;</Literal>, <Literal>&lt;=</Literal>,
+<Literal>&gt;</Literal>, <Literal>&gt;=</Literal>
+and <Literal>__nonzero__</Literal>
+operators.
+</Para>
+</Sect2>
+
+<Sect2><Title>QTime</Title>
+<Para>
+<Literal>QTime</Literal> is fully implemented, including the Python
+<Literal>==</Literal>, <Literal>!=</Literal>,
+<Literal>&lt;</Literal>, <Literal>&lt;=</Literal>,
+<Literal>&gt;</Literal>, <Literal>&gt;=</Literal>
+and <Literal>__nonzero__</Literal>
+operators.
+</Para>
+</Sect2>
+<Sect2><Title>QDateEdit (Qt v3+)</Title>
+<Para>
+<Literal>QDateEdit</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QTimeEdit (Qt v3+)</Title>
+<Para>
+<Literal>QTimeEdit</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QDateTimeEdit (Qt v3+)</Title>
+<Para>
+<Literal>QDateTimeEdit</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QDesktopWidget (Qt v3+)</Title>
+<Para>
+<Literal>QDesktopWidget</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QDial (Qt v2.2+)</Title>
+<Para>
+<Literal>QDial</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QDialog</Title>
+<FuncSynopsis>
+ <FuncDef>int <Function>exec</Function></FuncDef>
+ <ParamDef></ParamDef>
+</FuncSynopsis>
+<Para>
+This has been renamed to <Literal>exec_loop</Literal> in Python.
+</Para>
+<Para>
+This method also causes ownership of the underlying C++ dialog to be transfered
+to Python. This means that the C++ dialog will be deleted when the Python
+wrapper is garbage collected. Although this is a little inconsistent, it
+ensures that the dialog is deleted without having to explicity code it using
+<Literal>QObject.deleteLater()</Literal> or other techniques.
+</Para>
+</Sect2>
+<Sect2><Title>QDir</Title>
+<Para>
+<Literal>QDir</Literal> is fully implemented, including the Python
+<Literal>len</Literal>, <Literal>[]</Literal> (for reading slices and
+individual elements), <Literal>==</Literal>, <Literal>!=</Literal> and
+<Literal>in</Literal> operators
+</Para>
+</Sect2>
+
+<Sect2><Title>QFileInfoList</Title>
+<Para>
+This class isn't implemented. Whenever a <Literal>QFileInfoList</Literal> is
+the return type of a function or the type of an argument, a Python list of
+<Literal>QFileInfo</Literal> instances is used instead.
+</Para>
+</Sect2>
+<Sect2><Title>QDockArea (Qt v3+)</Title>
+<FuncSynopsis>
+ <FuncDef>bool <Function>hasDockWindow</Function> const</FuncDef>
+ <ParamDef>QDockWindow *<Parameter>w</Parameter></ParamDef>
+ <ParamDef>int *<Parameter>index</Parameter> = 0</ParamDef>
+</FuncSynopsis>
+<Para>
+This takes the <Literal>w</Literal> parameter and returns the index of the
+QDockWIndow or -1 if the QDockArea does not contain the QDockWindow.
+</Para>
+</Sect2>
+<Sect2><Title>QDockWindow (Qt v3+)</Title>
+<Para>
+<Literal>QDockWindow</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QColorDrag (Qt v2.1+)</Title>
+<Para>
+<Literal>QColorDrag</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QDragObject</Title>
+<Para>
+<Literal>QDragObject</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QImageDrag</Title>
+<Para>
+<Literal>QImageDrag</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QStoredDrag</Title>
+<Para>
+<Literal>QStoredDrag</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QTextDrag</Title>
+<Para>
+<Literal>QTextDrag</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QUriDrag (Qt v2+)</Title>
+<Para>
+<Literal>QUriDrag</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QUrlDrag (Qt v1.x)</Title>
+<Para>
+<Literal>QUrlDrag</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QDropSite</Title>
+<Para>
+<Literal>QDropSite</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QErrorMessage (Qt v3+)</Title>
+<Para>
+<Literal>QErrorMessage</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QEvent</Title>
+<Para>
+<Literal>QEvent</Literal> is fully implemented.
+</Para>
+<Para>
+Instances of <Literal>QEvent</Literal>s are automatically converted to the
+correct sub-class.
+</Para>
+</Sect2>
+
+<Sect2><Title>QChildEvent</Title>
+<Para>
+<Literal>QChildEvent</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QCloseEvent</Title>
+<Para>
+<Literal>QCloseEvent</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QIconDragEvent (Qt v3.3+)</Title>
+<Para>
+<Literal>QIconDragEvent</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QContextMenuEvent (Qt v3+)</Title>
+<Para>
+<Literal>QContextMenuEvent</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QCustomEvent</Title>
+<Para>
+<Literal>QCustomEvent</Literal> is fully implemented. Any Python object can be
+passed as the event data and its reference count is increased.
+</Para>
+</Sect2>
+
+<Sect2><Title>QDragEnterEvent</Title>
+<Para>
+<Literal>QDragEnterEvent</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QDragLeaveEvent</Title>
+<Para>
+<Literal>QDragLeaveEvent</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QDragMoveEvent</Title>
+<Para>
+<Literal>QDragMoveEvent</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QDropEvent</Title>
+<Para>
+<Literal>QDropEvent</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QFocusEvent</Title>
+<Para>
+<Literal>QFocusEvent</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QHideEvent</Title>
+<Para>
+<Literal>QHideEvent</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QIMComposeEvent (Qt v3.1+)</Title>
+<Para>
+<Literal>QIMComposeEvent</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QIMEvent (Qt v3+)</Title>
+<Para>
+<Literal>QIMEvent</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QKeyEvent</Title>
+<Para>
+<Literal>QKeyEvent</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QMouseEvent</Title>
+<Para>
+<Literal>QMouseEvent</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QMoveEvent</Title>
+<Para>
+<Literal>QMoveEvent</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QPaintEvent</Title>
+<Para>
+<Literal>QPaintEvent</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QResizeEvent</Title>
+<Para>
+<Literal>QResizeEvent</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QShowEvent</Title>
+<Para>
+<Literal>QShowEvent</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QTabletEvent (Qt v3+)</Title>
+<Para>
+<Literal>QTabletEvent</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QTimerEvent</Title>
+<Para>
+<Literal>QTimerEvent</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QWheelEvent (Qt v2+)</Title>
+<Para>
+<Literal>QWheelEvent</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QEventLoop (Qt v3.1+)</Title>
+<FuncSynopsis>
+ <FuncDef>virtual int <Function>exec</Function></FuncDef>
+ <ParamDef></ParamDef>
+</FuncSynopsis>
+<Para>
+This has been renamed to <Literal>exec_loop</Literal> in Python.
+</Para>
+</Sect2>
+<Sect2><Title>QFile</Title>
+<FuncSynopsis>
+ <FuncDef>bool <Function>open</Function></FuncDef>
+ <ParamDef>int <Parameter>m</Parameter></ParamDef>
+ <ParamDef>FILE *<Parameter>f</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+Not implemented.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>Q_LONG <Function>readBlock</Function></FuncDef>
+ <ParamDef>char *<Parameter>data</Parameter></ParamDef>
+ <ParamDef>Q_ULONG <Parameter>len</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+This takes a single <Literal>len</Literal> parameter. The
+<Literal>data</Literal> is returned if there was no error, otherwise
+<Literal>None</Literal> is returned.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>Q_LONG <Function>readLine</Function></FuncDef>
+ <ParamDef>char *<Parameter>data</Parameter></ParamDef>
+ <ParamDef>Q_ULONG <Parameter>maxlen</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+This takes a single <Literal>maxlen</Literal> parameter. The
+<Literal>data</Literal> is returned if there was no error, otherwise
+<Literal>None</Literal> is returned.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>static void <Function>setDecodingFunction</Function></FuncDef>
+ <ParamDef>EncoderFn <Parameter>f</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+Not yet implemented. (Qt v2+)
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>static void <Function>setEncodingFunction</Function></FuncDef>
+ <ParamDef>EncoderFn <Parameter>f</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+Not yet implemented. (Qt v2+)
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>Q_LONG <Function>writeBlock</Function></FuncDef>
+ <ParamDef>const char *<Parameter>data</Parameter></ParamDef>
+ <ParamDef>Q_ULONG <Parameter>len</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+<Literal>len</Literal> is derived from <Literal>data</Literal> and not passed
+as a parameter.
+</Para>
+</Sect2>
+<Sect2><Title>QFileDialog</Title>
+<Para>
+<Literal>QFileDialog</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QFileIconProvider</Title>
+<Para>
+<Literal>QFileIconProvider</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QFilePreview</Title>
+<Para>
+<Literal>QFilePreview</Literal> is fully implemented. However it cannot be
+used from Python in the same way as it is used from C++ because PyQt does not
+support multiple inheritance involving more than one wrapped class. A trick
+that seems to work is to use composition rather than inheritance as in the
+following code fragment.
+</Para>
+<ProgramListing>
+class FilePreview(QFilePreview):
+ pass
+
+class Preview(QLabel):
+ def __init__(self, parent=None):
+ QLabel.__init__(self, parent)
+ self.preview = FilePreview()
+ self.preview.previewUrl = self.previewUrl
+</ProgramListing>
+<Para>
+Note that QFilePreview cannot be instantiated directly because it is abstract.
+Thanks to Hans-Peter Jansen for this trick.
+</Para>
+</Sect2>
+<Sect2><Title>QFileInfo</Title>
+<Para>
+<Literal>QFileInfo</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QFont</Title>
+<Para>
+<Literal>QFont</Literal> is fully implemented, including the Python
+<Literal>==</Literal> and <Literal>!=</Literal> operators.
+</Para>
+</Sect2>
+<Sect2><Title>QFontDatabase (Qt v2.1+)</Title>
+<Para>
+<Literal>QFontDatabase</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QFontDialog (Qt v2+)</Title>
+<FuncSynopsis>
+ <FuncDef>static QFont <Function>getFont</Function></FuncDef>
+ <ParamDef>bool *<Parameter>ok</Parameter></ParamDef>
+ <ParamDef>const QFont &<Parameter>def</Parameter></ParamDef>
+ <ParamDef>QWidget *<Parameter>parent</Parameter> = 0</ParamDef>
+ <ParamDef>const char *<Parameter>name</Parameter> = 0</ParamDef>
+</FuncSynopsis>
+<Para>
+This takes the <Literal>def</Literal>, <Literal>parent</Literal> and
+<Literal>name</Literal> parameters and returns a tuple containing the
+<Literal>QFont</Literal> result and the <Literal>ok</Literal> value.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>static QFont <Function>getFont</Function></FuncDef>
+ <ParamDef>bool *<Parameter>ok</Parameter></ParamDef>
+ <ParamDef>QWidget *<Parameter>parent</Parameter> = 0</ParamDef>
+ <ParamDef>const char *<Parameter>name</Parameter> = 0</ParamDef>
+</FuncSynopsis>
+<Para>
+This takes the <Literal>parent</Literal> and <Literal>name</Literal> parameters
+and returns a tuple containing the <Literal>QFont</Literal> result and the
+<Literal>ok</Literal> value.
+</Para>
+</Sect2>
+<Sect2><Title>QFontInfo</Title>
+<Para>
+<Literal>QFontInfo</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QFontMetrics</Title>
+<FuncSynopsis>
+ <FuncDef>QRect <Function>boundingRect</Function></FuncDef>
+ <ParamDef>int <Parameter>x</Parameter></ParamDef>
+ <ParamDef>int <Parameter>y</Parameter></ParamDef>
+ <ParamDef>int <Parameter>w</Parameter></ParamDef>
+ <ParamDef>int <Parameter>h</Parameter></ParamDef>
+ <ParamDef>int <Parameter>flags</Parameter></ParamDef>
+ <ParamDef>const QString &amp;<Parameter>str</Parameter></ParamDef>
+ <ParamDef>int <Parameter>len</Parameter> = -1</ParamDef>
+ <ParamDef>int <Parameter>tabstops</Parameter> = 0</ParamDef>
+ <ParamDef>int *<Parameter>tabarray</Parameter> = 0</ParamDef>
+</FuncSynopsis>
+<Para>
+The <Literal>tabarray</Literal> parameter is a Python list of integers.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>QSize <Function>size</Function></FuncDef>
+ <ParamDef>int <Parameter>flags</Parameter></ParamDef>
+ <ParamDef>const QString &amp;<Parameter>str</Parameter></ParamDef>
+ <ParamDef>int <Parameter>len</Parameter> = -1</ParamDef>
+ <ParamDef>int <Parameter>tabstops</Parameter> = 0</ParamDef>
+ <ParamDef>int *<Parameter>tabarray</Parameter> = 0</ParamDef>
+</FuncSynopsis>
+<Para>
+The <Literal>tabarray</Literal> parameter is a Python list of integers.
+</Para>
+</Sect2>
+<Sect2><Title>QFrame</Title>
+<Para>
+<Literal>QFrame</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QGManager (Qt v1.x)</Title>
+<Para>
+<Literal>QGManager</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QChain (Qt v1.x)</Title>
+<Para>
+<Literal>QChain</Literal> is implemented as an opaque class.
+</Para>
+</Sect2>
+<Sect2><Title>QGrid (Qt v2+)</Title>
+<Para>
+<Literal>QGrid</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QGridView (Qt v3+)</Title>
+<Para>
+<Literal>QGridView</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QGroupBox</Title>
+<Para>
+<Literal>QGroupBox</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QHBox (Qt v2+)</Title>
+<Para>
+<Literal>QHBox</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QHButtonGroup (Qt v2+)</Title>
+<Para>
+<Literal>QHButtonGroup</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QHeader</Title>
+<Para>
+<Literal>QHeader</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QHGroupBox (Qt v2+)</Title>
+<Para>
+<Literal>QHGroupBox</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QIconSet</Title>
+<Para>
+<Literal>QIconSet</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QIconFactory (Qt v3.1+)</Title>
+<Para>
+<Literal>QIconFactory</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QIconView (Qt v2.1+)</Title>
+<FuncSynopsis>
+ <FuncDef>QIconViewItem *<Function>makeRowLayout</Function></FuncDef>
+ <ParamDef>QIconViewItem *<Parameter>begin</Parameter></ParamDef>
+ <ParamDef>int &<Parameter>y</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+Not yet implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QIconViewItem (Qt v2.1+)</Title>
+<Para>
+<Literal>QIconViewItem</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QIconDrag (Qt v2.1+)</Title>
+<Para>
+<Literal>QIconDrag</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QIconDragItem (Qt v2.1+)</Title>
+<Para>
+<Literal>QIconDragItem</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QImage</Title>
+<Para>
+The Python <Literal>==</Literal> and <Literal>!=</Literal> operators are
+supported.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef><Function>QImage</Function></FuncDef>
+ <ParamDef>const char *<Parameter>xpm</Parameter>[]</ParamDef>
+</FuncSynopsis>
+<Para>
+This takes a list of strings as its parameter.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef><Function>QImage</Function></FuncDef>
+ <ParamDef>uchar *<Parameter>data</Parameter></ParamDef>
+ <ParamDef>int <Parameter>w</Parameter></ParamDef>
+ <ParamDef>int <Parameter>h</Parameter></ParamDef>
+ <ParamDef>int <Parameter>depth</Parameter></ParamDef>
+ <ParamDef>QRgb *<Parameter>colorTable</Parameter></ParamDef>
+ <ParamDef>int <Parameter>numColors</Parameter></ParamDef>
+ <ParamDef>Endian <Parameter>bitOrder</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+The <Literal>colorTable</Literal> parameter is a list of QRgb instances or
+None. (Qt v2.1+)
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>uchar *<Function>bits</Function></FuncDef>
+ <ParamDef></ParamDef>
+</FuncSynopsis>
+<Para>
+The return value is a <Literal>sip.voidptr</Literal> object which is only
+useful if passed to another Python module.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>QRgb *<Function>colorTable</Function></FuncDef>
+ <ParamDef></ParamDef>
+</FuncSynopsis>
+<Para>
+The return value is a <Literal>sip.voidptr</Literal> object which is only
+useful if passed to another Python module.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>QImage <Function>convertDepthWithPalette</Function></FuncDef>
+ <ParamDef>int</ParamDef>
+ <ParamDef>QRgb *<Parameter>p</Parameter></ParamDef>
+ <ParamDef>int <Parameter>pc</Parameter></ParamDef>
+ <ParamDef>int <Parameter>cf</Parameter> = 0</ParamDef>
+</FuncSynopsis>
+<Para>
+Not implemented.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>uchar **<Function>jumpTable</Function></FuncDef>
+ <ParamDef></ParamDef>
+</FuncSynopsis>
+<Para>
+The return value is a <Literal>sip.voidptr</Literal> object which is only
+useful if passed to another Python module.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>bool <Function>loadFromData</Function></FuncDef>
+ <ParamDef>const uchar *<Parameter>buf</Parameter></ParamDef>
+ <ParamDef>uint <Parameter>len</Parameter></ParamDef>
+ <ParamDef>const char *<Parameter>format</Parameter> = 0</ParamDef>
+ <ParamDef>ColorMode <Parameter>mode</Parameter> = Auto</ParamDef>
+</FuncSynopsis>
+<Para>
+<Literal>len</Literal> is derived from <Literal>buf</Literal> and not passed as
+a parameter.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>uchar *<Function>scanLine</Function></FuncDef>
+ <ParamDef>int <Parameter>i</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+The return value is a <Literal>sip.voidptr</Literal> object which is only
+useful if passed to another Python module.
+</Para>
+</Sect2>
+
+<Sect2><Title>QImageIO</Title>
+<FuncSynopsis>
+ <FuncDef>static void <Function>defineIOHandler</Function></FuncDef>
+ <ParamDef>const char *<Parameter>format</Parameter></ParamDef>
+ <ParamDef>const char *<Parameter>header</Parameter></ParamDef>
+ <ParamDef>const char *<Parameter>flags</Parameter></ParamDef>
+ <ParamDef>image_io_handler <Parameter>read_image</Parameter></ParamDef>
+ <ParamDef>image_io_handler <Parameter>write_image</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+Not implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QImageTextKeyLang</Title>
+<Para>
+<Literal>QImageTextKeyLang</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QInputDialog (Qt v2.1+)</Title>
+<FuncSynopsis>
+ <FuncDef>static QString <Function>getText</Function></FuncDef>
+ <ParamDef>const QString &amp;<Parameter>caption</Parameter></ParamDef>
+ <ParamDef>const QString &amp;<Parameter>label</Parameter></ParamDef>
+ <ParamDef>const QString &amp;<Parameter>text</Parameter> = QString::null</ParamDef>
+ <ParamDef>bool *<Parameter>ok</Parameter> = 0</ParamDef>
+ <ParamDef>QWidget *<Parameter>parent</Parameter> = 0</ParamDef>
+ <ParamDef>const char *<Parameter>name</Parameter> = 0</ParamDef>
+</FuncSynopsis>
+<Para>
+The <Literal>ok</Literal> is not passed and the returned value is a tuple of
+the <Literal>QString</Literal> result and the <Literal>ok</Literal> flag.
+(Qt v2.1 - v2.3.1)
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>static QString <Function>getText</Function></FuncDef>
+ <ParamDef>const QString &amp;<Parameter>caption</Parameter></ParamDef>
+ <ParamDef>const QString &amp;<Parameter>label</Parameter></ParamDef>
+ <ParamDef>QLineEdit::EchoMode<Parameter>echo</Parameter></ParamDef>
+ <ParamDef>const QString &amp;<Parameter>text</Parameter> = QString::null</ParamDef>
+ <ParamDef>bool *<Parameter>ok</Parameter> = 0</ParamDef>
+ <ParamDef>QWidget *<Parameter>parent</Parameter> = 0</ParamDef>
+ <ParamDef>const char *<Parameter>name</Parameter> = 0</ParamDef>
+</FuncSynopsis>
+<Para>
+The <Literal>ok</Literal> is not passed and the returned value is a tuple of
+the <Literal>QString</Literal> result and the <Literal>ok</Literal> flag.
+(Qt v2.2 - v2.3.1)
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>static QString <Function>getText</Function></FuncDef>
+ <ParamDef>const QString &amp;<Parameter>caption</Parameter></ParamDef>
+ <ParamDef>const QString &amp;<Parameter>label</Parameter></ParamDef>
+ <ParamDef>QLineEdit::EchoMode<Parameter>echo</Parameter> = QLineEdit::Normal</ParamDef>
+ <ParamDef>const QString &amp;<Parameter>text</Parameter> = QString::null</ParamDef>
+ <ParamDef>bool *<Parameter>ok</Parameter> = 0</ParamDef>
+ <ParamDef>QWidget *<Parameter>parent</Parameter> = 0</ParamDef>
+ <ParamDef>const char *<Parameter>name</Parameter> = 0</ParamDef>
+</FuncSynopsis>
+<Para>
+The <Literal>ok</Literal> is not passed and the returned value is a tuple of
+the <Literal>QString</Literal> result and the <Literal>ok</Literal> flag.
+(Qt v3+)
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>static int <Function>getInteger</Function></FuncDef>
+ <ParamDef>const QString &amp;<Parameter>caption</Parameter></ParamDef>
+ <ParamDef>const QString &amp;<Parameter>label</Parameter></ParamDef>
+ <ParamDef>int <Parameter>num</Parameter> = 0</ParamDef>
+ <ParamDef>int <Parameter>from</Parameter> = -2147483647</ParamDef>
+ <ParamDef>int <Parameter>to</Parameter> = 2147483647</ParamDef>
+ <ParamDef>int <Parameter>step</Parameter> = 1</ParamDef>
+ <ParamDef>bool *<Parameter>ok</Parameter> = 0</ParamDef>
+ <ParamDef>QWidget *<Parameter>parent</Parameter> = 0</ParamDef>
+ <ParamDef>const char *<Parameter>name</Parameter> = 0</ParamDef>
+</FuncSynopsis>
+<Para>
+The <Literal>ok</Literal> is not passed and the returned value is a tuple of
+the <Literal>int</Literal> result and the <Literal>ok</Literal> flag.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>static double <Function>getDouble</Function></FuncDef>
+ <ParamDef>const QString &amp;<Parameter>caption</Parameter></ParamDef>
+ <ParamDef>const QString &amp;<Parameter>label</Parameter></ParamDef>
+ <ParamDef>double <Parameter>num</Parameter> = 0</ParamDef>
+ <ParamDef>double <Parameter>from</Parameter> = -2147483647</ParamDef>
+ <ParamDef>double <Parameter>to</Parameter> = 2147483647</ParamDef>
+ <ParamDef>int <Parameter>step</Parameter> = 1</ParamDef>
+ <ParamDef>bool *<Parameter>ok</Parameter> = 0</ParamDef>
+ <ParamDef>QWidget *<Parameter>parent</Parameter> = 0</ParamDef>
+ <ParamDef>const char *<Parameter>name</Parameter> = 0</ParamDef>
+</FuncSynopsis>
+<Para>
+The <Literal>ok</Literal> is not passed and the returned value is a tuple of
+the <Literal>double</Literal> result and the <Literal>ok</Literal> flag.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>static QString <Function>getItem</Function></FuncDef>
+ <ParamDef>const QString &amp;<Parameter>caption</Parameter></ParamDef>
+ <ParamDef>const QString &amp;<Parameter>label</Parameter></ParamDef>
+ <ParamDef>const QStringList &<Parameter>list</Parameter></ParamDef>
+ <ParamDef>int <Parameter>current</Parameter> = 0</ParamDef>
+ <ParamDef>bool <Parameter>editable</Parameter> = TRUE</ParamDef>
+ <ParamDef>bool *<Parameter>ok</Parameter> = 0</ParamDef>
+ <ParamDef>QWidget *<Parameter>parent</Parameter> = 0</ParamDef>
+ <ParamDef>const char *<Parameter>name</Parameter> = 0</ParamDef>
+</FuncSynopsis>
+<Para>
+The <Literal>ok</Literal> is not passed and the returned value is a tuple of
+the <Literal>QString</Literal> result and the <Literal>ok</Literal> flag.
+</Para>
+</Sect2>
+<Sect2><Title>QInterlaceStyle (Qt v2.3.1+)</Title>
+<FuncSynopsis>
+ <FuncDef>void <Function>scrollBarMetrics</Function></FuncDef>
+ <ParamDef>const QTabBar *<Parameter>sb</Parameter></ParamDef>
+ <ParamDef>int &amp;<Parameter>sliderMin</Parameter></ParamDef>
+ <ParamDef>int &amp;<Parameter>sliderMax</Parameter></ParamDef>
+ <ParamDef>int &amp;<Parameter>sliderLength</Parameter></ParamDef>
+ <ParamDef>int &amp;<Parameter>buttonDim</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+This takes only the <Literal>sb</Literal> parameter and returns a tuple of the
+<Literal>sliderMin</Literal>, <Literal>sliderMax</Literal>,
+<Literal>sliderLength</Literal> and <Literal>buttonDim</Literal> values.
+</Para>
+</Sect2>
+<Sect2><Title>QIODevice</Title>
+<Para>
+<Literal>QIODevice</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QKeySequence (Qt v3+)</Title>
+<Para>
+<Literal>QKeySequence</Literal> is fully implemented including the operators
+<Literal>==</Literal>, <Literal>!=</Literal>, <Literal>QString()</Literal> and
+<Literal>int()</Literal>. A <Literal>QString</Literal> instance or a Python
+integer may be used whenever a <Literal>QKeySequence</Literal> can be used.
+</Para>
+</Sect2>
+<Sect2><Title>QLabel</Title>
+<Para>
+<Literal>QLabel</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QLayout</Title>
+<Para>
+<Literal>QLayout</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QBoxLayout</Title>
+<Para>
+<Literal>QBoxLayout</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QGLayoutIterator (Qt v2+)</Title>
+<Para>
+<Literal>QGLayoutIterator</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QGridLayout</Title>
+<FuncSynopsis>
+ <FuncDef>bool <Function>findWidget</Function></FuncDef>
+ <ParamDef>QWidget *<Parameter>w</Parameter></ParamDef>
+ <ParamDef>int *<Parameter>row</Parameter></ParamDef>
+ <ParamDef>int *<Parameter>col</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+This takes the <Literal>w</Literal> parameter and returns a tuple containing
+the <Literal>bool</Literal> result, <Literal>row</Literal> and
+<Literal>col</Literal>. (Qt v2+)
+</Para>
+</Sect2>
+
+<Sect2><Title>QHBoxLayout</Title>
+<Para>
+<Literal>QHBoxLayout</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QLayoutItem (Qt v2+)</Title>
+<Para>
+<Literal>QLayoutItem</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QLayoutIterator (Qt v2+)</Title>
+<FuncSynopsis>
+ <FuncDef>QLayoutItem *<Function>next</Function></FuncDef>
+ <ParamDef></ParamDef>
+</FuncSynopsis>
+<Para>
+This is a wrapper around the <Literal>QLayoutIterator</Literal>
+<Literal>++</Literal> operator.
+</Para>
+</Sect2>
+
+<Sect2><Title>QSpacerItem (Qt v2+)</Title>
+<Para>
+<Literal>QSpacerItem</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QVBoxLayout</Title>
+<Para>
+<Literal>QVBoxLayout</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QWidgetItem (Qt v2+)</Title>
+<Para>
+<Literal>QWidgetItem</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QLCDNumber</Title>
+<Para>
+<Literal>QLCDNumber</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QLibrary (Qt v3+)</Title>
+<Para>
+<Literal>QLibrary</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QLineEdit</Title>
+<FuncSynopsis>
+ <FuncDef>int <Function>characterAt</Function></FuncDef>
+ <ParamDef>int <Parameter>xpos</Parameter></ParamDef>
+ <ParamDef>QChar *<Parameter>chr</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+This takes only the <Literal>xpos</Literal> parameter and returns the int
+result and the <Literal>chr</Literal> value as a tuple. (Qt v3+)
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>void <Function>del</Function></FuncDef>
+ <ParamDef></ParamDef>
+</FuncSynopsis>
+<Para>
+This has been renamed <Literal>delChar</Literal> in Python. (Qt v2+)
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>bool <Function>getSelection</Function></FuncDef>
+ <ParamDef>int *<Parameter>start</Parameter></ParamDef>
+ <ParamDef>int *<Parameter>end</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+This takes no parameters and returns the bool result and the
+<Literal>start</Literal> and <Literal>end</Literal> values as a tuple.
+(Qt v3+)
+</Para>
+</Sect2>
+<Sect2><Title>QList&lt;type&gt; (Qt v2)</Title>
+<Para>
+Types based on the <Literal>QList</Literal> template are automatically
+converted to and from Python lists of the type.
+</Para>
+</Sect2>
+<Sect2><Title>QListBox</Title>
+<FuncSynopsis>
+ <FuncDef>bool <Function>itemYPos</Function></FuncDef>
+ <ParamDef>int <Parameter>index</Parameter></ParamDef>
+ <ParamDef>int *<Parameter>yPos</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+This takes the <Literal>index</Literal> parameter and returns a tuple
+containing the <Literal>bool</Literal> result and <Literal>yPos</Literal>.
+(Qt v1.x)
+</Para>
+</Sect2>
+
+<Sect2><Title>QListBoxItem</Title>
+<Para>
+<Literal>QListBoxItem</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QListBoxPixmap</Title>
+<Para>
+<Literal>QListBoxPixmap</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QListBoxText</Title>
+<Para>
+<Literal>QListBoxText</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QListView</Title>
+<Para>
+<Literal>QListView</Literal> is fully implemented.
+</Para>
+<Para>
+Note that to remove a child <Literal>QListViewItem</Literal> you must first
+call <Literal>takeItem()</Literal> and then <Literal>del()</Literal>.
+</Para>
+</Sect2>
+
+<Sect2><Title>QListViewItem</Title>
+<Para>
+<Literal>QListViewItem</Literal> is fully implemented.
+</Para>
+<Para>
+Note that to remove a child <Literal>QListViewItem</Literal> you must first
+call <Literal>takeItem()</Literal> and then <Literal>del()</Literal>.
+</Para>
+</Sect2>
+
+<Sect2><Title>QCheckListItem</Title>
+<Para>
+<Literal>QCheckListItem</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QListViewItemIterator (Qt v2+)</Title>
+<Para>
+<Literal>QListViewItemIterator</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QLocale (Qt v3.3+)</Title>
+<FuncSynopsis>
+ <FuncDef>short <Function>toShort</Function></FuncDef>
+ <ParamDef>bool *<Parameter>ok</Parameter> = 0</ParamDef>
+</FuncSynopsis>
+<Para>
+This returns a tuple of the <Literal>short</Literal> result and the
+<Literal>ok</Literal> value.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>ushort <Function>toUShort</Function></FuncDef>
+ <ParamDef>bool *<Parameter>ok</Parameter> = 0</ParamDef>
+</FuncSynopsis>
+<Para>
+This returns a tuple of the <Literal>ushort</Literal> result and the
+<Literal>ok</Literal> value.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>int <Function>toInt</Function></FuncDef>
+ <ParamDef>bool *<Parameter>ok</Parameter> = 0</ParamDef>
+</FuncSynopsis>
+<Para>
+This returns a tuple of the <Literal>int</Literal> result and the
+<Literal>ok</Literal> value.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>uint <Function>toUInt</Function></FuncDef>
+ <ParamDef>bool *<Parameter>ok</Parameter> = 0</ParamDef>
+</FuncSynopsis>
+<Para>
+This returns a tuple of the <Literal>uint</Literal> result and the
+<Literal>ok</Literal> value.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>Q_LONG <Function>toLong</Function></FuncDef>
+ <ParamDef>bool *<Parameter>ok</Parameter> = 0</ParamDef>
+</FuncSynopsis>
+<Para>
+This returns a tuple of the <Literal>long</Literal> result and the
+<Literal>ok</Literal> value.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>Q_ULONG <Function>toULong</Function></FuncDef>
+ <ParamDef>bool *<Parameter>ok</Parameter> = 0</ParamDef>
+</FuncSynopsis>
+<Para>
+This returns a tuple of the <Literal>ulong</Literal> result and the
+<Literal>ok</Literal> value.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>float <Function>toFloat</Function></FuncDef>
+ <ParamDef>bool *<Parameter>ok</Parameter> = 0</ParamDef>
+</FuncSynopsis>
+<Para>
+This returns a tuple of the <Literal>float</Literal> result and the
+<Literal>ok</Literal> value.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>double <Function>toDouble</Function></FuncDef>
+ <ParamDef>bool *<Parameter>ok</Parameter> = 0</ParamDef>
+</FuncSynopsis>
+<Para>
+This returns a tuple of the <Literal>double</Literal> result and the
+<Literal>ok</Literal> value.
+</Para>
+</Sect2>
+<Sect2><Title>QMainWindow</Title>
+<FuncSynopsis>
+ <FuncDef>QTextStream &amp;<Function>operator&lt&lt;</Function></FuncDef>
+ <ParamDef>QTextStream &amp;<Parameter></Parameter></ParamDef>
+ <ParamDef>const QMainWindow &amp;<Parameter></Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+This operator is fully implemented. (Qt v3+)
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>QTextStream &amp;<Function>operator&gt&gt;</Function></FuncDef>
+ <ParamDef>QTextStream &amp;<Parameter></Parameter></ParamDef>
+ <ParamDef>QMainWindow &amp;<Parameter></Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+This operator is fully implemented. (Qt v3+)
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>bool <Function>getLocation</Function></FuncDef>
+ <ParamDef>QToolBar *<Parameter>tb</Parameter></ParamDef>
+ <ParamDef>ToolBarDock &amp;<Parameter>dock</Parameter></ParamDef>
+ <ParamDef>int &amp;<Parameter>index</Parameter></ParamDef>
+ <ParamDef>bool &amp;<Parameter>nl</Parameter></ParamDef>
+ <ParamDef>int &amp;<Parameter>extraOffset</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+This takes only the <Literal>tb</Literal> parameter and returns a tuple of the
+result, <Literal>dock</Literal>, <Literal>index</Literal>,
+<Literal>nl</Literal> and <Literal>extraOffset</Literal> values. (Qt v2.1.0+)
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>QList&lt;QToolBar&gt; <Function>toolBars</Function></FuncDef>
+ <ParamDef>ToolBarDock <Parameter>dock</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+This returns a list of <Literal>QToolBar</Literal> instances. (Qt v2.1.0+)
+</Para>
+</Sect2>
+<Sect2><Title>QMemArray&lt;type&gt; (Qt v3+)</Title>
+<Para>
+Types based on the <Literal>QMemArray</Literal> template are automatically
+converted to and from Python lists of the type.
+</Para>
+</Sect2>
+<Sect2><Title>QMenuBar</Title>
+<Para>
+<Literal>QMenuBar</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QMenuData</Title>
+<FuncSynopsis>
+ <FuncDef>QMenuItem *<Function>findItem</Function></FuncDef>
+ <ParamDef>int <Parameter>id</Parameter></ParamDef>
+ <ParamDef>QMenuData **<Parameter>parent</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+Not implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QCustomMenuItem (Qt v2.1+)</Title>
+<Para>
+<Literal>QCustomMenuItem</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QMenuItem</Title>
+<Para>
+<Literal>QMenuItem</Literal> is an internal Qt class.
+</Para>
+</Sect2>
+<Sect2><Title>QMessageBox</Title>
+<Para>
+<Literal>QMessageBox</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QMetaObject</Title>
+<FuncSynopsis>
+ <FuncDef>int <Function>numClassInfo</Function> const</FuncDef>
+ <ParamDef>bool <Parameter>super</Parameter> = FALSE</ParamDef>
+</FuncSynopsis>
+<Para>
+Not implemented.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>const QClassInfo *<Function>classInfo</Function> const</FuncDef>
+ <ParamDef>bool <Parameter>super</Parameter> = FALSE</ParamDef>
+</FuncSynopsis>
+<Para>
+Not implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QMetaProperty</Title>
+<Para>
+<Literal>QMetaProperty</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QMimeSource (Qt v2+)</Title>
+<Para>
+<Literal>QMimeSource</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QMimeSourceFactory (Qt v2+)</Title>
+<Para>
+<Literal>QMimeSourceFactory</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QWindowsMime (Qt v3+)</Title>
+<Para>
+<Literal>QWindowsMime</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QMotifPlusStyle (Qt v2.2+)</Title>
+<FuncSynopsis>
+ <FuncDef>void <Function>getButtonShift</Function></FuncDef>
+ <ParamDef>int &amp;<Parameter>x</Parameter></ParamDef>
+ <ParamDef>int &amp;<Parameter>y</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+This takes no parameters and returns a tuple of the <Literal>x</Literal> and
+<Literal>y</Literal> values. (Qt v2)
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>void <Function>scrollBarMetrics</Function></FuncDef>
+ <ParamDef>const QScrollBar *<Parameter>sb</Parameter></ParamDef>
+ <ParamDef>int &amp;<Parameter>sliderMin</Parameter></ParamDef>
+ <ParamDef>int &amp;<Parameter>sliderMax</Parameter></ParamDef>
+ <ParamDef>int &amp;<Parameter>sliderLength</Parameter></ParamDef>
+ <ParamDef>int &amp;<Parameter>buttonDim</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+This takes only the <Literal>sb</Literal> parameter and returns a tuple of the
+<Literal>sliderMin</Literal>, <Literal>sliderMax</Literal>,
+<Literal>sliderLength</Literal> and <Literal>buttonDim</Literal> values.
+(Qt v2)
+</Para>
+</Sect2>
+<Sect2><Title>QMotifStyle (Qt v2+)</Title>
+<FuncSynopsis>
+ <FuncDef>void <Function>scrollBarMetrics</Function></FuncDef>
+ <ParamDef>const QTabBar *<Parameter>sb</Parameter></ParamDef>
+ <ParamDef>int &<Parameter>sliderMin</Parameter></ParamDef>
+ <ParamDef>int &<Parameter>sliderMax</Parameter></ParamDef>
+ <ParamDef>int &<Parameter>sliderLength</Parameter></ParamDef>
+ <ParamDef>int &<Parameter>buttonDim</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+This takes only the <Literal>sb</Literal> parameter and returns a tuple of the
+<Literal>sliderMin</Literal>, <Literal>sliderMax</Literal>,
+<Literal>sliderLength</Literal> and <Literal>buttonDim</Literal> values.
+(Qt v2)
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>void <Function>tabbarMetrics</Function></FuncDef>
+ <ParamDef>const QTabBar *<Parameter>t</Parameter></ParamDef>
+ <ParamDef>int &<Parameter>hframe</Parameter></ParamDef>
+ <ParamDef>int &<Parameter>vframe</Parameter></ParamDef>
+ <ParamDef>int &<Parameter>overlap</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+This takes only the <Literal>t</Literal> parameter and returns a tuple of the
+<Literal>hframe</Literal>, <Literal>vframe</Literal> and
+<Literal>overlap</Literal> values. (Qt v2)
+</Para>
+</Sect2>
+<Sect2><Title>QMovie</Title>
+<FuncSynopsis>
+ <FuncDef><Function>QMovie</Function></FuncDef>
+ <ParamDef>QDataSource *<Parameter>src</Parameter></ParamDef>
+ <ParamDef>int <Parameter>bufsize</Parameter> = 1024</ParamDef>
+</FuncSynopsis>
+<Para>
+Not implemented.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>void <Function>pushData</Function></FuncDef>
+ <ParamDef>const uchar *<Parameter>data</Parameter></ParamDef>
+ <ParamDef>int <Parameter>length</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+<Literal>length</Literal> is derived from <Literal>data</Literal> and not
+passed as a parameter. (Qt v2.2.0+)
+</Para>
+</Sect2>
+<Sect2><Title>QMultiLineEdit</Title>
+<FuncSynopsis>
+ <FuncDef>void <Function>cursorPosition</Function> const</FuncDef>
+ <ParamDef>int *<Parameter>line</Parameter></ParamDef>
+ <ParamDef>int *<Parameter>col</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+This takes no parameters and returns a tuple of the <Literal>line</Literal> and
+<Literal>col</Literal> values. (Qt v1.x, Qt v2.x)
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>virtual void <Function>del</Function></FuncDef>
+ <ParamDef></ParamDef>
+</FuncSynopsis>
+<Para>
+This has been renamed <Literal>delChar</Literal> in Python. (Qt v1.x, Qt v2.x)
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>void <Function>getCursorPosition</Function> const</FuncDef>
+ <ParamDef>int *<Parameter>line</Parameter></ParamDef>
+ <ParamDef>int *<Parameter>col</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+This takes no parameters and returns a tuple of the <Literal>line</Literal> and
+<Literal>col</Literal> values. (Qt v1.x, Qt v2.x)
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>bool <Function>getMarkedRegion</Function></FuncDef>
+ <ParamDef>int *<Parameter>line1</Parameter></ParamDef>
+ <ParamDef>int *<Parameter>col1</Parameter></ParamDef>
+ <ParamDef>int *<Parameter>line2</Parameter></ParamDef>
+ <ParamDef>int *<Parameter>col2</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+This takes no parameters and returns a tuple of the bool result and the
+<Literal>line1</Literal>, <Literal>col1</Literal>, <Literal>line2</Literal> and
+<Literal>col2</Literal> values.
+</Para>
+</Sect2>
+<Sect2><Title>QMutex (Qt v2.2+)</Title>
+<Para>
+<Literal>QMutex</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QMutexLocker (Qt v3.1+)</Title>
+<Para>
+<Literal>QMutexLocker</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QNetworkOperation (Qt v2.1+)</Title>
+<Para>
+<Literal>QNetworkOperation</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QNetworkProtocol (Qt v2.1+)</Title>
+<Para>
+<Literal>QNetworkProtocol</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QNetworkProtocolFactoryBase (Qt v2.1+)</Title>
+<Para>
+<Literal>QNetworkProtocolFactoryBase</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QObject</Title>
+<FuncSynopsis>
+ <FuncDef>bool <Function>disconnect</Function></FuncDef>
+ <ParamDef>const QObject *<Parameter>receiver</Parameter></ParamDef>
+ <ParamDef>const char *<Parameter>member</Parameter> = 0</ParamDef>
+</FuncSynopsis>
+<Para>
+Not yet implemented.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>bool <Function>disconnect</Function></FuncDef>
+ <ParamDef>const char *<Parameter>signal</Parameter> = 0</ParamDef>
+ <ParamDef>const QObject *<Parameter>receiver</Parameter> = 0</ParamDef>
+ <ParamDef>const char *<Parameter>member</Parameter> = 0</ParamDef>
+</FuncSynopsis>
+<Para>
+Not yet implemented.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>static bool <Function>disconnect</Function></FuncDef>
+ <ParamDef>const QObject *<Parameter>sender</Parameter></ParamDef>
+ <ParamDef>const char *<Parameter>signal</Parameter></ParamDef>
+ <ParamDef>const QObject *<Parameter>receiver</Parameter></ParamDef>
+ <ParamDef>const char *<Parameter>member</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+At the moment PyQt does not support the full behaviour of the corresponding Qt
+method. In particular, specifying None (ie. 0 in C++) for the
+<Literal>signal</Literal> and <Literal>receiver</Literal> parameters is not yet
+supported.
+</Para>
+</Sect2>
+<Sect2><Title>QObjectCleanupHandler (Qt v3+)</Title>
+<Para>
+<Literal>QObjectCleanupHandler</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QObjectList</Title>
+<Para>
+This class isn't implemented. Whenever a <Literal>QObjectList</Literal> is the
+return type of a function or the type of an argument, a Python list of
+<Literal>QObject</Literal> instances is used instead.
+</Para>
+</Sect2>
+<Sect2><Title>QPaintDeviceMetrics</Title>
+<Para>
+<Literal>QPaintDeviceMetrics</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QPaintDevice</Title>
+<FuncSynopsis>
+ <FuncDef>virtual bool <Function>cmd</Function></FuncDef>
+ <ParamDef>int</ParamDef>
+ <ParamDef>QPainter *</ParamDef>
+ <ParamDef>QPDevCmdParam *</ParamDef>
+</FuncSynopsis>
+<Para>
+Not implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QPainter</Title>
+<FuncSynopsis>
+ <FuncDef>QRect <Function>boundingRect</Function></FuncDef>
+ <ParamDef>int <Parameter>x</Parameter></ParamDef>
+ <ParamDef>int <Parameter>y</Parameter></ParamDef>
+ <ParamDef>int <Parameter>w</Parameter></ParamDef>
+ <ParamDef>int <Parameter>h</Parameter></ParamDef>
+ <ParamDef>int <Parameter>flags</Parameter></ParamDef>
+ <ParamDef>const char *<Parameter>str</Parameter></ParamDef>
+ <ParamDef>int <Parameter>len</Parameter> = -1</ParamDef>
+ <ParamDef>char **<Parameter>intern</Parameter> = 0</ParamDef>
+</FuncSynopsis>
+<Para>
+The <Literal>intern</Literal> parameter is not supported.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>QRect <Function>boundingRect</Function></FuncDef>
+ <ParamDef>const QRect&</ParamDef>
+ <ParamDef>int <Parameter>flags</Parameter></ParamDef>
+ <ParamDef>const char *<Parameter>str</Parameter></ParamDef>
+ <ParamDef>int <Parameter>len</Parameter> = -1</ParamDef>
+ <ParamDef>char **<Parameter>intern</Parameter> = 0</ParamDef>
+</FuncSynopsis>
+<Para>
+The <Literal>intern</Literal> parameter is not supported.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>void <Function>drawText</Function></FuncDef>
+ <ParamDef>int <Parameter>x</Parameter></ParamDef>
+ <ParamDef>int <Parameter>y</Parameter></ParamDef>
+ <ParamDef>int <Parameter>w</Parameter></ParamDef>
+ <ParamDef>int <Parameter>h</Parameter></ParamDef>
+ <ParamDef>int <Parameter>flags</Parameter></ParamDef>
+ <ParamDef>const char *<Parameter>str</Parameter></ParamDef>
+ <ParamDef>int <Parameter>len</Parameter> = -1</ParamDef>
+ <ParamDef>QRect *<Parameter>br</Parameter> = 0</ParamDef>
+ <ParamDef>char **<Parameter>intern</Parameter> = 0</ParamDef>
+</FuncSynopsis>
+<Para>
+The <Literal>intern</Literal> parameter is not supported.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>void <Function>drawText</Function></FuncDef>
+ <ParamDef>const QRect&</ParamDef>
+ <ParamDef>int <Parameter>flags</Parameter></ParamDef>
+ <ParamDef>const char *<Parameter>str</Parameter></ParamDef>
+ <ParamDef>int <Parameter>len</Parameter> = -1</ParamDef>
+ <ParamDef>QRect *<Parameter>br</Parameter> = 0</ParamDef>
+ <ParamDef>char **<Parameter>intern</Parameter> = 0</ParamDef>
+</FuncSynopsis>
+<Para>
+The <Literal>intern</Literal> parameter is not supported.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>void <Function>setTabArray</Function></FuncDef>
+ <ParamDef>int *<Parameter>ta</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+This takes a single parameter which is a list of tab stops.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>int *<Function>tabArray</Function></FuncDef>
+ <ParamDef></ParamDef>
+</FuncSynopsis>
+<Para>
+This returns a list of tab stops.
+</Para>
+</Sect2>
+<Sect2><Title>QPalette</Title>
+<Para>
+<Literal>QPalette</Literal> is fully implemented, including the Python
+<Literal>==</Literal> and <Literal>!=</Literal> operators.
+</Para>
+</Sect2>
+<Sect2><Title>QPixmap</Title>
+<FuncSynopsis>
+ <FuncDef><Function>QPixmap</Function></FuncDef>
+ <ParamDef>const char *<Parameter>xpm</Parameter>[]</ParamDef>
+</FuncSynopsis>
+<Para>
+This takes a list of strings as its parameter.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>bool <Function>loadFromData</Function></FuncDef>
+ <ParamDef>const uchar *<Parameter>buf</Parameter></ParamDef>
+ <ParamDef>uint <Parameter>len</Parameter></ParamDef>
+ <ParamDef>const char *<Parameter>format</Parameter> = 0</ParamDef>
+ <ParamDef>ColorMode <Parameter>mode</Parameter> = Auto</ParamDef>
+</FuncSynopsis>
+<Para>
+<Literal>len</Literal> is derived from <Literal>buf</Literal> and not passed as
+a parameter.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>bool <Function>loadFromData</Function></FuncDef>
+ <ParamDef>const uchar *<Parameter>buf</Parameter></ParamDef>
+ <ParamDef>uint <Parameter>len</Parameter></ParamDef>
+ <ParamDef>const char *<Parameter>format</Parameter></ParamDef>
+ <ParamDef>int <Parameter>conversion_flags</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+Not implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QPixmapCache (Qt v3+)</Title>
+<Para>
+<Literal>QPixmapCache</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QPair&lt;type,type&gt; (Qt v3+)</Title>
+<Para>
+Types based on the <Literal>QPair</Literal> template are automatically
+converted to and from Python tuples of two elements.
+</Para>
+</Sect2>
+<Sect2><Title>QPen</Title>
+<Para>
+<Literal>QPen</Literal> is fully implemented, including the Python
+<Literal>==</Literal> and <Literal>!=</Literal> operators.
+</Para>
+</Sect2>
+<Sect2><Title>QPicture</Title>
+<FuncSynopsis>
+ <FuncDef>const char *<Function>data</Function></FuncDef>
+ <ParamDef></ParamDef>
+</FuncSynopsis>
+<Para>
+Not implemented.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>void <Function>setData</Function></FuncDef>
+ <ParamDef>const char *<Parameter>data</Parameter></ParamDef>
+ <ParamDef>uint <Parameter>size</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+<Literal>size</Literal> is derived from <Literal>data</Literal> and not passed
+as a parameter.
+</Para>
+</Sect2>
+<Sect2><Title>QPlatinumStyle (Qt v2+)</Title>
+<FuncSynopsis>
+ <FuncDef>void <Function>scrollBarMetrics</Function></FuncDef>
+ <ParamDef>const QTabBar *<Parameter>sb</Parameter></ParamDef>
+ <ParamDef>int &<Parameter>sliderMin</Parameter></ParamDef>
+ <ParamDef>int &<Parameter>sliderMax</Parameter></ParamDef>
+ <ParamDef>int &<Parameter>sliderLength</Parameter></ParamDef>
+ <ParamDef>int &<Parameter>buttonDim</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+This takes only the <Literal>sb</Literal> parameter and returns a tuple of the
+<Literal>sliderMin</Literal>, <Literal>sliderMax</Literal>,
+<Literal>sliderLength</Literal> and <Literal>buttonDim</Literal> values.
+(Qt v2)
+</Para>
+</Sect2>
+<Sect2><Title>QPoint</Title>
+<Para>
+The Python
+<Literal>+</Literal>, <Literal>+=</Literal>,
+<Literal>-</Literal>, <Literal>-=</Literal>, unary <Literal>-</Literal>,
+<Literal>*</Literal>, <Literal>*=</Literal>,
+<Literal>/</Literal>, <Literal>/=</Literal>,
+<Literal>==</Literal>, <Literal>!=</Literal> and <Literal>__nonzero__</Literal>
+operators are supported.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>QCOORD &amp;<Function>rx</Function></FuncDef>
+ <ParamDef></ParamDef>
+</FuncSynopsis>
+<Para>
+Not implemented.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>QCOORD &amp;<Function>ry</Function></FuncDef>
+ <ParamDef></ParamDef>
+</FuncSynopsis>
+<Para>
+Not implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QPointArray</Title>
+<FuncSynopsis>
+ <FuncDef><Function>QPointArray</Function></FuncDef>
+ <ParamDef>int <Parameter>nPoints</Parameter></ParamDef>
+ <ParamDef>const QCOORD *<Parameter>points</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+This takes a single parameter which is a list of points.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>void <Function>point</Function></FuncDef>
+ <ParamDef>uint <Parameter>i</Parameter></ParamDef>
+ <ParamDef>int *<Parameter>x</Parameter></ParamDef>
+ <ParamDef>int *<Parameter>y</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+This takes the single parameter <Literal>i</Literal> and returns the
+<Literal>x</Literal> and <Literal>y</Literal> values as a tuple.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>bool <Function>putPoints</Function></FuncDef>
+ <ParamDef>int <Parameter>index</Parameter></ParamDef>
+ <ParamDef>int <Parameter>nPoints</Parameter></ParamDef>
+ <ParamDef>const QCOORD *<Parameter>points</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+This takes two parameters, <Literal>index</Literal> and a list of points.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>bool <Function>putPoints</Function></FuncDef>
+ <ParamDef>int <Parameter>index</Parameter></ParamDef>
+ <ParamDef>int <Parameter>nPoints</Parameter></ParamDef>
+ <ParamDef>int <Parameter>firstx</Parameter></ParamDef>
+ <ParamDef>int <Parameter>firsty</Parameter></ParamDef>
+ <ParamDef>...</ParamDef>
+</FuncSynopsis>
+<Para>
+Not implemented.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>bool <Function>setPoints</Function></FuncDef>
+ <ParamDef>int <Parameter>nPoints</Parameter></ParamDef>
+ <ParamDef>const QCOORD *<Parameter>points</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+This takes a single parameter which is a list of points.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>bool <Function>setPoints</Function></FuncDef>
+ <ParamDef>int <Parameter>nPoints</Parameter></ParamDef>
+ <ParamDef>int <Parameter>firstx</Parameter></ParamDef>
+ <ParamDef>int <Parameter>firsty</Parameter></ParamDef>
+ <ParamDef>...</ParamDef>
+</FuncSynopsis>
+<Para>
+Not implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QPopupMenu</Title>
+<FuncSynopsis>
+ <FuncDef>int <Function>exec</Function></FuncDef>
+ <ParamDef></ParamDef>
+</FuncSynopsis>
+<Para>
+This has been renamed <Literal>exec_loop</Literal> in Python.
+</Para>
+<Para>
+This method also causes ownership of the underlying C++ menu to be transfered
+to Python. This means that the C++ menu will be deleted when the Python
+wrapper is garbage collected. Although this is a little inconsistent, it
+ensures that the menu is deleted without having to explicity code it using
+<Literal>QObject.deleteLater()</Literal> or other techniques.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>int <Function>exec</Function></FuncDef>
+ <ParamDef>const QPoint &<Parameter>pos</Parameter></ParamDef>
+ <ParamDef>int <Parameter>indexAtPoint</Parameter> = 0</ParamDef>
+</FuncSynopsis>
+<Para>
+This has been renamed <Literal>exec_loop</Literal> in Python.
+</Para>
+<Para>
+This method also causes ownership of the underlying C++ menu to be transfered
+to Python. This means that the C++ menu will be deleted when the Python
+wrapper is garbage collected. Although this is a little inconsistent, it
+ensures that the menu is deleted without having to explicity code it using
+<Literal>QObject.deleteLater()</Literal> or other techniques.
+</Para>
+</Sect2>
+<Sect2><Title>QPrintDialog (X11)</Title>
+<Para>
+<Literal>QPrintDialog</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QPrinter</Title>
+<Para>
+<Literal>QPrinter</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QProcess (Qt v3+)</Title>
+<Para>
+<Literal>QProcess</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QProgressBar</Title>
+<Para>
+<Literal>QProgressBar</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QProgressDialog</Title>
+<Para>
+<Literal>QProgressDialog</Literal> is fully implemented.
+value.
+</Para>
+</Sect2>
+<Sect2><Title>QPtrList&lt;type&gt; (Qt v2+)</Title>
+<Para>
+Types based on the <Literal>QPtrList</Literal> template are automatically
+converted to and from Python lists of the type.
+</Para>
+</Sect2>
+<Sect2><Title>QPushButton</Title>
+<Para>
+<Literal>QPushButton</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QRadioButton</Title>
+<Para>
+<Literal>QRadioButton</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QRangeControl</Title>
+<Para>
+<Literal>QRangeControl</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QRect</Title>
+<Para>
+The Python
+<Literal>&amp;</Literal>, <Literal>&amp;=</Literal>,
+<Literal>|</Literal>, <Literal>|=</Literal>,
+<Literal>==</Literal>, <Literal>!=</Literal>, <Literal>in</Literal> and
+<Literal>__nonzero__</Literal> operators are supported.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>void <Function>coords</Function></FuncDef>
+ <ParamDef>int *<Parameter>x1</Parameter></ParamDef>
+ <ParamDef>int *<Parameter>y1</Parameter></ParamDef>
+ <ParamDef>int *<Parameter>x2</Parameter></ParamDef>
+ <ParamDef>int *<Parameter>y2</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+This takes no parameters and returns a tuple containing the four values.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>void <Function>rect</Function></FuncDef>
+ <ParamDef>int *<Parameter>x</Parameter></ParamDef>
+ <ParamDef>int *<Parameter>y</Parameter></ParamDef>
+ <ParamDef>int *<Parameter>w</Parameter></ParamDef>
+ <ParamDef>int *<Parameter>h</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+This takes no parameters and returns a tuple containing the four values.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>QCOORD &amp;<Function>rBottom</Function></FuncDef>
+ <ParamDef></ParamDef>
+</FuncSynopsis>
+<Para>
+Not implemented. (Qt v2+)
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>QCOORD &amp;<Function>rLeft</Function></FuncDef>
+ <ParamDef></ParamDef>
+</FuncSynopsis>
+<Para>
+Not implemented. (Qt v2+)
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>QCOORD &amp;<Function>rRight</Function></FuncDef>
+ <ParamDef></ParamDef>
+</FuncSynopsis>
+<Para>
+Not implemented. (Qt v2+)
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>QCOORD &amp;<Function>rTop</Function></FuncDef>
+ <ParamDef></ParamDef>
+</FuncSynopsis>
+<Para>
+Not implemented. (Qt v2+)
+</Para>
+</Sect2>
+<Sect2><Title>QRegExp</Title>
+<Para>
+The Python <Literal>==</Literal> and <Literal>!=</Literal> operators are
+supported.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>int <Function>match</Function></FuncDef>
+ <ParamDef>const char *<Parameter>str</Parameter></ParamDef>
+ <ParamDef>int <Parameter>index</Parameter> = 0</ParamDef>
+ <ParamDef>int *<Parameter>len</Parameter> = 0</ParamDef>
+</FuncSynopsis>
+<Para>
+This takes <Literal>str</Literal> and <Literal>index</Literal> parameters and
+returns a tuple of the <Literal>int</Literal> result and the
+<Literal>len</Literal> value. (Qt v1.x)
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>int <Function>match</Function></FuncDef>
+ <ParamDef>const QString &<Parameter>str</Parameter></ParamDef>
+ <ParamDef>int <Parameter>index</Parameter> = 0</ParamDef>
+ <ParamDef>int *<Parameter>len</Parameter> = 0</ParamDef>
+</FuncSynopsis>
+<Para>
+This takes <Literal>str</Literal> and <Literal>index</Literal> parameters and
+returns a tuple of the <Literal>int</Literal> result and the
+<Literal>len</Literal> value. (Qt v2+)
+</Para>
+</Sect2>
+<Sect2><Title>QRegion</Title>
+<Para>
+The Python
+<Literal>|</Literal>, <Literal>|=</Literal>,
+<Literal>+</Literal>, <Literal>+=</Literal>,
+<Literal>&amp;</Literal>, <Literal>&amp;=</Literal>,
+<Literal>-</Literal>, <Literal>-=</Literal>,
+<Literal>^</Literal>, <Literal>^=</Literal>,
+<Literal>==</Literal>, <Literal>!=</Literal>, <Literal>in</Literal> and
+<Literal>__nonzero__</Literal> operators are supported.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>QArray&lt;QRect&gt; <Function>rects</Function></FuncDef>
+ <ParamDef></ParamDef>
+</FuncSynopsis>
+<Para>
+Not implemented.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>void <Function>setRects</Function></FuncDef>
+ <ParamDef>QRect *<Parameter>rects</Parameter></ParamDef>
+ <ParamDef>int <Parameter>num</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+Not yet implemented. (Qt v2.2+)
+</Para>
+</Sect2>
+<Sect2><Title>QScrollBar</Title>
+<Para>
+<Literal>QScrollBar</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QScrollView</Title>
+<FuncSynopsis>
+ <FuncDef>void <Function>contentsToViewport</Function></FuncDef>
+ <ParamDef>int <Parameter>x</Parameter></ParamDef>
+ <ParamDef>int <Parameter>y</Parameter></ParamDef>
+ <ParamDef>int &<Parameter>vx</Parameter></ParamDef>
+ <ParamDef>int &<Parameter>vy</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+This takes the <Literal>x</Literal> and <Literal>y</Literal> parameters and
+returns a tuple containing the <Literal>vx</Literal> and <Literal>vy</Literal>
+values. (Qt v2+)
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>void <Function>viewportToContents</Function></FuncDef>
+ <ParamDef>int <Parameter>vx</Parameter></ParamDef>
+ <ParamDef>int <Parameter>vy</Parameter></ParamDef>
+ <ParamDef>int &<Parameter>x</Parameter></ParamDef>
+ <ParamDef>int &<Parameter>y</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+This takes the <Literal>vx</Literal> and <Literal>vy</Literal> parameters and
+returns a tuple containing the <Literal>x</Literal> and <Literal>y</Literal>
+values. (Qt v2+)
+</Para>
+</Sect2>
+<Sect2><Title>QSemaphore (Qt v2.2+)</Title>
+<Para>
+<Literal>QSemaphore</Literal> is fully implemented. The <Literal>+=</Literal>
+and <Literal>-=</Literal> operators have also been implemented, but require
+Python v2.0 or later.
+</Para>
+</Sect2>
+<Sect2><Title>QSemiModal (Qt v1, v2)</Title>
+<Para>
+<Literal>QSemiModal</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QSessionManager (Qt v2+)</Title>
+<Para>
+<Literal>QSessionManager</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QSettings (Qt v3+)</Title>
+<FuncSynopsis>
+ <FuncDef>bool <Function>readBoolEntry</Function></FuncDef>
+ <ParamDef>const QString &amp;<Parameter>key</Parameter></ParamDef>
+ <ParamDef>bool <Parameter>def</Parameter> = 0</ParamDef>
+ <ParamDef>bool *<Parameter>ok</Parameter> = 0</ParamDef>
+</FuncSynopsis>
+<Para>
+The <Literal>ok</Literal> is not passed and the returned value is a tuple of
+the <Literal>bool</Literal> result and the <Literal>ok</Literal> flag.
+</Para>
+
+<FuncSynopsis>
+<FuncDef>double <Function>readDoubleEntry</Function></FuncDef>
+ <ParamDef>const QString &amp;<Parameter>key</Parameter></ParamDef>
+ <ParamDef>double <Parameter>def</Parameter> = 0</ParamDef>
+ <ParamDef>bool *<Parameter>ok</Parameter> = 0</ParamDef>
+</FuncSynopsis>
+<Para>
+The <Literal>ok</Literal> is not passed and the returned value is a tuple of
+the <Literal>double</Literal> result and the <Literal>ok</Literal> flag.
+</Para>
+
+<FuncSynopsis>
+<FuncDef>QString <Function>readEntry</Function></FuncDef>
+ <ParamDef>const QString &amp;<Parameter>key</Parameter></ParamDef>
+ <ParamDef>const QString &amp;<Parameter>def</Parameter> = QString::null</ParamDef>
+ <ParamDef>bool *<Parameter>ok</Parameter> = 0</ParamDef>
+</FuncSynopsis>
+<Para>
+The <Literal>ok</Literal> is not passed and the returned value is a tuple of
+the <Literal>QString</Literal> result and the <Literal>ok</Literal> flag.
+</Para>
+
+<FuncSynopsis>
+<FuncDef>QStringList <Function>readListEntry</Function></FuncDef>
+ <ParamDef>const QString &amp;<Parameter>key</Parameter></ParamDef>
+ <ParamDef>bool *<Parameter>ok</Parameter> = 0</ParamDef>
+</FuncSynopsis>
+<Para>
+The <Literal>ok</Literal> is not passed and the returned value is a tuple of
+the <Literal>QStringList</Literal> result and the <Literal>ok</Literal> flag.
+</Para>
+
+<FuncSynopsis>
+<FuncDef>QStringList <Function>readListEntry</Function></FuncDef>
+ <ParamDef>const QString &amp;<Parameter>key</Parameter></ParamDef>
+ <ParamDef>const QChar &amp;<Parameter>separator</Parameter></ParamDef>
+ <ParamDef>bool *<Parameter>ok</Parameter> = 0</ParamDef>
+</FuncSynopsis>
+<Para>
+The <Literal>ok</Literal> is not passed and the returned value is a tuple of
+the <Literal>QStringList</Literal> result and the <Literal>ok</Literal> flag.
+</Para>
+
+<FuncSynopsis>
+<FuncDef>int <Function>readNumEntry</Function></FuncDef>
+ <ParamDef>const QString &amp;<Parameter>key</Parameter></ParamDef>
+ <ParamDef>int <Parameter>def</Parameter> = 0</ParamDef>
+ <ParamDef>bool *<Parameter>ok</Parameter> = 0</ParamDef>
+</FuncSynopsis>
+<Para>
+The <Literal>ok</Literal> is not passed and the returned value is a tuple of
+the <Literal>int</Literal> result and the <Literal>ok</Literal> flag.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>bool <Function>writeEntry</Function></FuncDef>
+ <ParamDef>const QString &amp;<Parameter>key</Parameter></ParamDef>
+ <ParamDef>bool <Parameter>value</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+Not implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QSGIStyle (Qt v2.2+)</Title>
+<FuncSynopsis>
+ <FuncDef>void <Function>scrollBarMetrics</Function></FuncDef>
+ <ParamDef>const QScrollBar *<Parameter>sb</Parameter></ParamDef>
+ <ParamDef>int &amp;<Parameter>sliderMin</Parameter></ParamDef>
+ <ParamDef>int &amp;<Parameter>sliderMax</Parameter></ParamDef>
+ <ParamDef>int &amp;<Parameter>sliderLength</Parameter></ParamDef>
+ <ParamDef>int &amp;<Parameter>buttonDim</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+This takes only the <Literal>sb</Literal> parameter and returns a tuple of the
+<Literal>sliderMin</Literal>, <Literal>sliderMax</Literal>,
+<Literal>sliderLength</Literal> and <Literal>buttonDim</Literal> values.
+(Qt v2)
+</Para>
+</Sect2>
+<Sect2><Title>QSignalMapper</Title>
+<Para>
+<Literal>QSignalMapper</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QSimpleRichText (Qt v2+)</Title>
+<Para>
+<Literal>QSimpleRichText</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QSize</Title>
+<Para>
+The Python
+<Literal>+</Literal>, <Literal>+=</Literal>,
+<Literal>-</Literal>, <Literal>-=</Literal>,
+<Literal>*</Literal>, <Literal>*=</Literal>,
+<Literal>/</Literal>, <Literal>/=</Literal>,
+<Literal>==</Literal>, <Literal>!=</Literal> and <Literal>__nonzero__</Literal>
+operators are supported.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>QCOORD &amp;<Function>rheight</Function></FuncDef>
+ <ParamDef></ParamDef>
+</FuncSynopsis>
+<Para>
+Not implemented.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>QCOORD &amp;<Function>rwidth</Function></FuncDef>
+ <ParamDef></ParamDef>
+</FuncSynopsis>
+<Para>
+Not implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QSizeGrip (Qt v2+)</Title>
+<Para>
+<Literal>QSizeGrip</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QSizePolicy (Qt v2+)</Title>
+<Para>
+<Literal>QSizePolicy</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QSlider</Title>
+<Para>
+<Literal>QSlider</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QSocketNotifier</Title>
+<Para>
+<Literal>QSocketNotifier</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QSound (Qt v2.2+)</Title>
+<Para>
+<Literal>QSound</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QSpinBox</Title>
+<FuncSynopsis>
+ <FuncDef>virtual int <Function>mapTextToValue</Function></FuncDef>
+ <ParamDef>bool *<Parameter>ok</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+This returns a tuple of the <Literal>int</Literal> result and the modified
+<Literal>ok</Literal> value.
+</Para>
+</Sect2>
+<Sect2><Title>QSplashScreen (Qt v3.2.0+)</Title>
+<Para>
+<Literal>QSplashScreen</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QSplitter</Title>
+<FuncSynopsis>
+ <FuncDef>void <Function>getRange</Function></FuncDef>
+ <ParamDef>int <Parameter>id</Parameter></ParamDef>
+ <ParamDef>int *<Parameter>min</Parameter></ParamDef>
+ <ParamDef>int *<Parameter>max</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+This takes the <Literal>id</Literal> parameter and returns the
+<Literal>min</Literal> and <Literal>max</Literal> values as a tuple. (Qt v2+)
+</Para>
+</Sect2>
+<Sect2><Title>QStatusBar</Title>
+<Para>
+<Literal>QStatusBar</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QChar (Qt v2+)</Title>
+<FuncSynopsis>
+ <FuncDef>uchar &<Function>cell</Function> const</FuncDef>
+ <ParamDef></ParamDef>
+</FuncSynopsis>
+<Para>
+Not implemented.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>uchar &<Function>row</Function> const</FuncDef>
+ <ParamDef></ParamDef>
+</FuncSynopsis>
+<Para>
+Not implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QString</Title>
+<Para>
+A Python string object (or Unicode object) can be used whenever a
+<Literal>QString</Literal> can be used. A <Literal>QString</Literal> can be
+converted to a Python string object using the Python <Literal>str()</Literal>
+function, and to a Python Unicode object using the Python
+<Literal>unicode()</Literal> function.
+</Para>
+
+<Para>
+The Python <Literal>+</Literal>, <Literal>+=</Literal>, <Literal>*</Literal>,
+<Literal>*=</Literal>, <Literal>len</Literal>, <Literal>[]</Literal>
+(for reading slices and individual characters), <Literal>in</Literal> and
+comparison operators are supported.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>QCharRef <Function>at</Function></FuncDef>
+ <ParamDef>uint <Parameter>i</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+Not yet implemented. (Qt v2+)
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>QChar <Function>constref</Function> const</FuncDef>
+ <ParamDef>uint <Parameter>i</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+Not yet implemented. (Qt v2+)
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>QChar &<Function>ref</Function></FuncDef>
+ <ParamDef>uint <Parameter>i</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+Not yet implemented. (Qt v2+)
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>QString &<Function>setUnicodeCodes</Function></FuncDef>
+ <ParamDef>const ushort *<Parameter>unicode_as_shorts</Parameter></ParamDef>
+ <ParamDef>uint <Parameter>len</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+Not yet implemented. (Qt v2.1+)
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>QString &<Function>sprintf</Function></FuncDef>
+ <ParamDef>const char *<Parameter>format</Parameter></ParamDef>
+ <ParamDef>...</ParamDef>
+</FuncSynopsis>
+<Para>
+Not implemented.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>short <Function>toShort</Function></FuncDef>
+ <ParamDef>bool *<Parameter>ok</Parameter> = 0</ParamDef>
+</FuncSynopsis>
+<Para>
+This returns a tuple of the <Literal>short</Literal> result and the
+<Literal>ok</Literal> value.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>ushort <Function>toUShort</Function></FuncDef>
+ <ParamDef>bool *<Parameter>ok</Parameter> = 0</ParamDef>
+</FuncSynopsis>
+<Para>
+This returns a tuple of the <Literal>ushort</Literal> result and the
+<Literal>ok</Literal> value.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>int <Function>toInt</Function></FuncDef>
+ <ParamDef>bool *<Parameter>ok</Parameter> = 0</ParamDef>
+</FuncSynopsis>
+<Para>
+This returns a tuple of the <Literal>int</Literal> result and the
+<Literal>ok</Literal> value.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>uint <Function>toUInt</Function></FuncDef>
+ <ParamDef>bool *<Parameter>ok</Parameter> = 0</ParamDef>
+</FuncSynopsis>
+<Para>
+This returns a tuple of the <Literal>uint</Literal> result and the
+<Literal>ok</Literal> value.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>long <Function>toLong</Function></FuncDef>
+ <ParamDef>bool *<Parameter>ok</Parameter> = 0</ParamDef>
+</FuncSynopsis>
+<Para>
+This returns a tuple of the <Literal>long</Literal> result and the
+<Literal>ok</Literal> value.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>ulong <Function>toULong</Function></FuncDef>
+ <ParamDef>bool *<Parameter>ok</Parameter> = 0</ParamDef>
+</FuncSynopsis>
+<Para>
+This returns a tuple of the <Literal>ulong</Literal> result and the
+<Literal>ok</Literal> value.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>float <Function>toFloat</Function></FuncDef>
+ <ParamDef>bool *<Parameter>ok</Parameter> = 0</ParamDef>
+</FuncSynopsis>
+<Para>
+This returns a tuple of the <Literal>float</Literal> result and the
+<Literal>ok</Literal> value.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>double <Function>toDouble</Function></FuncDef>
+ <ParamDef>bool *<Parameter>ok</Parameter> = 0</ParamDef>
+</FuncSynopsis>
+<Para>
+This returns a tuple of the <Literal>double</Literal> result and the
+<Literal>ok</Literal> value.
+</Para>
+</Sect2>
+<Sect2><Title>QStringList (Qt v2+)</Title>
+<Para>
+The Python <Literal>len</Literal>, <Literal>[]</Literal> (for both reading and
+writing slices and individual elements), <Literal>del</Literal> (for deleting
+slices and individual elements), <Literal>+</Literal>, <Literal>+=</Literal>,
+<Literal>*</Literal>, <Literal>*=</Literal>, <Literal>==</Literal>,
+<Literal>!=</Literal> and <Literal>in</Literal> operators are supported.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>Iterator <Function>append</Function></FuncDef>
+ <ParamDef>const QString &<Parameter>x</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+This does not return a value.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>Iterator <Function>prepend</Function></FuncDef>
+ <ParamDef>const QString &<Parameter>x</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+This does not return a value.
+</Para>
+</Sect2>
+<Sect2><Title>QStrList</Title>
+<Para>
+This class isn't implemented. Whenever a <Literal>QStrList</Literal> is the
+return type of a function or the type of an argument, a Python list of strings
+is used instead.
+</Para>
+</Sect2>
+<Sect2><Title>QStyle (Qt v2+)</Title>
+<FuncSynopsis>
+ <FuncDef>virtual void <Function>getButtonShift</Function></FuncDef>
+ <ParamDef>int &amp;<Parameter>x</Parameter></ParamDef>
+ <ParamDef>int &amp;<Parameter>y</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+This takes no parameters and returns a tuple of the <Literal>x</Literal> and
+<Literal>y</Literal> values. (Qt v2)
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>virtual void <Function>scrollBarMetrics</Function></FuncDef>
+ <ParamDef>const QScrollBar *<Parameter>b</Parameter></ParamDef>
+ <ParamDef>int &amp;<Parameter>sliderMin</Parameter></ParamDef>
+ <ParamDef>int &amp;<Parameter>sliderMax</Parameter></ParamDef>
+ <ParamDef>int &amp;<Parameter>sliderLength</Parameter></ParamDef>
+ <ParamDef>int &amp;<Parameter>buttonDim</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+Thus takes only the <Literal>b</Literal> parameter and returns a tuple of the
+<Literal>sliderMin</Literal>, <Literal>sliderMax</Literal>,
+<Literal>sliderLength</Literal> and <Literal>buttonDim</Literal> values.
+(Qt v2)
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>virtual void <Function>tabbarMetrics</Function></FuncDef>
+ <ParamDef>const QTabBar *<Parameter>t</Parameter></ParamDef>
+ <ParamDef>int &amp;<Parameter>hframe</Parameter></ParamDef>
+ <ParamDef>int &amp;<Parameter>vframe</Parameter></ParamDef>
+ <ParamDef>int &amp;<Parameter>overlap</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+This takes only the <Literal>t</Literal> parameter and returns a tuple of the
+<Literal>hframe</Literal>, <Literal>vframe</Literal> and
+<Literal>overlap</Literal> values. (Qt v2)
+</Para>
+</Sect2>
+
+<Sect2><Title>QStyleOption (Qt v3+)</Title>
+<Para>
+<Literal>QStyleOption</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QStyleSheet (Qt v2+)</Title>
+<Para>
+<Literal>QStyleSheet</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QStyleSheetItem (Qt v2+)</Title>
+<Para>
+<Literal>QStyleSheetItem</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QSyntaxHighlighter (Qt v3.1+)</Title>
+<Para>
+<Literal>QSyntaxHighlighter</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QTab</Title>
+<Para>
+<Literal>QTab</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QTabBar</Title>
+<FuncSynopsis>
+ <FuncDef>QList&lt;QTab&gt; <Function>tabList</Function></FuncDef>
+ <ParamDef></ParamDef>
+</FuncSynopsis>
+<Para>
+This returns a list of <Literal>QTab</Literal> instances.
+</Para>
+</Sect2>
+<Sect2><Title>QTabDialog</Title>
+<Para>
+<Literal>QTabDialog</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QTableView (Qt 1.x, Qt 2.x)</Title>
+<FuncSynopsis>
+ <FuncDef>bool <Function>colXPos</Function></FuncDef>
+ <ParamDef>int <Parameter>col</Parameter></ParamDef>
+ <ParamDef>int *<Parameter>xPos</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+This takes the <Literal>col</Literal> parameter and returns a tuple containing
+the <Literal>bool</Literal> result and <Literal>xPos</Literal>.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>bool <Function>rowYPos</Function></FuncDef>
+ <ParamDef>int <Parameter>row</Parameter></ParamDef>
+ <ParamDef>int *<Parameter>yPos</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+This takes the <Literal>row</Literal> parameter and returns a tuple containing
+the <Literal>bool</Literal> result and <Literal>yPos</Literal>.
+</Para>
+</Sect2>
+<Sect2><Title>QTabWidget (Qt v2+)</Title>
+<Para>
+<Literal>QTabWidget</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QTextBrowser (Qt v2+)</Title>
+<Para>
+<Literal>QTextBrowser</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QTextCodec (Qt v2+)</Title>
+<FuncSynopsis>
+ <FuncDef>virtual QCString <Function>fromUnicode</Function></FuncDef>
+ <ParamDef>const QString &amp;<Parameter>uc</Parameter></ParamDef>
+ <ParamDef>int &amp;<Parameter>lenInOut</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+The returned value is a tuple of the <Literal>QCString</Literal> result and the
+updated <Literal>lenInOut</Literal>.
+</Para>
+</Sect2>
+
+<Sect2><Title>QTextDecoder (Qt v2+)</Title>
+<Para>
+<Literal>QTextDecoder</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QTextEncoder (Qt v2+)</Title>
+<FuncSynopsis>
+ <FuncDef>virtual QCString <Function>fromUnicode</Function> = 0</FuncDef>
+ <ParamDef>const QString &amp;<Parameter>uc</Parameter></ParamDef>
+ <ParamDef>int &amp;<Parameter>lenInOut</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+The returned value is a tuple of the <Literal>QCString</Literal> result and the
+updated <Literal>lenInOut</Literal>.
+</Para>
+</Sect2>
+<Sect2><Title>QTextEdit (Qt v3+)</Title>
+<FuncSynopsis>
+<FuncDef>int <Function>charAt</Function></FuncDef>
+ <ParamDef>const QPoint &amp;<Parameter>pos</Parameter></ParamDef>
+ <ParamDef>int *<Parameter>para</Parameter> = 0</ParamDef>
+</FuncSynopsis>
+<Para>
+This takes only the <Literal>pos</Literal> parameter and returns a tuple of the
+value returned via the <Literal>para</Literal> pointer and the int result.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>void <Function>del</Function></FuncDef>
+ <ParamDef></ParamDef>
+</FuncSynopsis>
+<Para>
+This has been renamed <Literal>delChar</Literal> in Python.
+</Para>
+
+<FuncSynopsis>
+<FuncDef>virtual bool <Function>find</Function></FuncDef>
+ <ParamDef>const QString &amp;<Parameter>expr</Parameter></ParamDef>
+ <ParamDef>bool <Parameter>cs</Parameter></ParamDef>
+ <ParamDef>bool <Parameter>wo</Parameter></ParamDef>
+ <ParamDef>bool <Parameter>forward</Parameter> = TRUE</ParamDef>
+ <ParamDef>int *<Parameter>para</Parameter> = 0</ParamDef>
+ <ParamDef>int *<Parameter>index</Parameter> = 0</ParamDef>
+</FuncSynopsis>
+<Para>
+If the <Literal>para</Literal> and <Literal>index</Literal> parameters are
+omitted then the bool result is returned. If both are supplied (as integers)
+then a tuple of the bool result and the modified values of
+<Literal>para</Literal> and <Literal>index</Literal> is returned.
+</Para>
+
+<FuncSynopsis>
+<FuncDef>void <Function>getCursorPosition</Function></FuncDef>
+ <ParamDef>int *<Parameter>para</Parameter></ParamDef>
+ <ParamDef>int *<Parameter>index</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+This takes no parameters and returns a tuple of the values returned via the
+<Literal>para</Literal> and <Literal>index</Literal> pointers.
+</Para>
+
+<FuncSynopsis>
+<FuncDef>void <Function>getSelection</Function></FuncDef>
+ <ParamDef>int *<Parameter>paraFrom</Parameter></ParamDef>
+ <ParamDef>int *<Parameter>indexFrom</Parameter></ParamDef>
+ <ParamDef>int *<Parameter>paraTo</Parameter></ParamDef>
+ <ParamDef>int *<Parameter>indexTo</Parameter></ParamDef>
+ <ParamDef>int <Parameter>selNum</Parameter> = 0</ParamDef>
+</FuncSynopsis>
+<Para>
+This takes only the <Literal>selNum</Literal> parameter and returns a tuple of
+the <Literal>paraFrom</Literal>, <Literal>indexFrom</Literal>,
+<Literal>paraTo</Literal> and <Literal>indexTo</Literal> values.
+</Para>
+</Sect2>
+<Sect2><Title>QTextStream</Title>
+<FuncSynopsis>
+ <FuncDef><Function>QTextStream</Function></FuncDef>
+ <ParamDef>FILE *<Parameter>fp</Parameter></ParamDef>
+ <ParamDef>int <Parameter>mode</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+Not implemented.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>QTextStream &<Function>readRawBytes</Function></FuncDef>
+ <ParamDef>char *<Parameter>buf</Parameter></ParamDef>
+ <ParamDef>uint <Parameter>len</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+Not yet implemented.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>QTextStream &<Function>writeRawBytes</Function></FuncDef>
+ <ParamDef>const char *<Parameter>buf</Parameter></ParamDef>
+ <ParamDef>uint <Parameter>len</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+Not yet implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QTextIStream (Qt v2+)</Title>
+<FuncSynopsis>
+ <FuncDef><Function>QTextIStream</Function></FuncDef>
+ <ParamDef>FILE *<Parameter>fp</Parameter></ParamDef>
+ <ParamDef>int <Parameter>mode</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+Not implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QTextOStream (Qt v2+)</Title>
+<FuncSynopsis>
+ <FuncDef><Function>QTextOStream</Function></FuncDef>
+ <ParamDef>FILE *<Parameter>fp</Parameter></ParamDef>
+ <ParamDef>int <Parameter>mode</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+Not implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QTextView (Qt v2+)</Title>
+<Para>
+<Literal>QTextView</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QThread (Qt v2.2+)</Title>
+<Para>
+<Literal>QThread</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QTimer</Title>
+<Para>
+<Literal>QTimer</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QToolBar</Title>
+<Para>
+<Literal>QToolBar</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QToolBox (Qt v3.2.0+)</Title>
+<Para>
+<Literal>QToolBox</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QToolButton</Title>
+<Para>
+<Literal>QToolButton</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QToolTip</Title>
+<Para>
+<Literal>QToolTip</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QToolTipGroup</Title>
+<Para>
+<Literal>QToolTipGroup</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QTranslator (Qt v2+)</Title>
+<Para>
+<Literal>QTranslator</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QTranslatorMessage (Qt v2.2+)</Title>
+<Para>
+<Literal>QTranslatorMessage</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QUrl (Qt v2.1+)</Title>
+<Para>
+<Literal>QUrl</Literal> is fully implemented, including the
+<Literal>QString()</Literal>, <Literal>==</Literal> and <Literal>!=</Literal>
+operators.
+</Para>
+</Sect2>
+<Sect2><Title>QUrlInfo (Qt v2.1+)</Title>
+<Para>
+<Literal>QUrlInfo</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QUrlOperator (Qt v2.1+)</Title>
+<FuncSynopsis>
+ <FuncDef>virtual bool <Function>isDir</Function></FuncDef>
+ <ParamDef>bool *<Parameter>ok</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+This returns a tuple of the <Literal>bool</Literal> result and the
+<Literal>ok</Literal> value.
+</Para>
+</Sect2>
+<Sect2><Title>QUuid (Qt v3.0+)</Title>
+<Para>
+<Literal>QUuid</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QValidator</Title>
+<FuncSynopsis>
+ <FuncDef>virtual State <Function>validate</Function></FuncDef>
+ <ParamDef>QString& <Parameter>input</Parameter></ParamDef>
+ <ParamDef>int& <Parameter>pos</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+The returned value is a tuple of the <Literal>State</Literal> result and the
+updated <Literal>pos</Literal>.
+</Para>
+</Sect2>
+
+<Sect2><Title>QDoubleValidator</Title>
+<FuncSynopsis>
+ <FuncDef>State <Function>validate</Function></FuncDef>
+ <ParamDef>QString& <Parameter>input</Parameter></ParamDef>
+ <ParamDef>int& <Parameter>pos</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+The returned value is a tuple of the <Literal>State</Literal> result and the
+updated <Literal>pos</Literal>.
+</Para>
+</Sect2>
+
+<Sect2><Title>QIntValidator</Title>
+<FuncSynopsis>
+ <FuncDef>State <Function>validate</Function></FuncDef>
+ <ParamDef>QString& <Parameter>input</Parameter></ParamDef>
+ <ParamDef>int& <Parameter>pos</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+The returned value is a tuple of the <Literal>State</Literal> result and the
+updated <Literal>pos</Literal>.
+</Para>
+</Sect2>
+
+<Sect2><Title>QRegExpValidator (Qt v3+)</Title>
+<FuncSynopsis>
+ <FuncDef>virtual State <Function>validate</Function></FuncDef>
+ <ParamDef>QString& <Parameter>input</Parameter></ParamDef>
+ <ParamDef>int& <Parameter>pos</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+The returned value is a tuple of the <Literal>State</Literal> result and the
+updated <Literal>pos</Literal>.
+</Para>
+</Sect2>
+<Sect2><Title>QValueList&lt;type&gt; (Qt v2+)</Title>
+<Para>
+Types based on the <Literal>QValueList</Literal> template are automatically
+converted to and from Python lists of the type.
+</Para>
+</Sect2>
+<Sect2><Title>QVariant (Qt v2.1+)</Title>
+<FuncSynopsis>
+ <FuncDef><Function>QVariant</Function></FuncDef>
+ <ParamDef>const char *<Parameter>val</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+Not implemented.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef><Function>QVariant</Function></FuncDef>
+ <ParamDef>const QBitArray &amp;<Parameter>val</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+Not yet implemented. (Qt v3+)
+</Para>
+
+<FuncSynopsis>
+ <FuncDef><Function>QVariant</Function></FuncDef>
+ <ParamDef>const QValueList&lt;QVariant&gt; &amp;<Parameter>val</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+Not yet implemented.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef><Function>QVariant</Function></FuncDef>
+ <ParamDef>const QMap&lt;QString,QVariant&gt; &amp;<Parameter>val</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+Not yet implemented.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>QBitArray &amp;<Function>asBitArray</Function></FuncDef>
+ <ParamDef></ParamDef>
+</FuncSynopsis>
+<Para>
+Not yet implemented. (Qt v3+)
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>bool &amp;<Function>asBool</Function></FuncDef>
+ <ParamDef></ParamDef>
+</FuncSynopsis>
+<Para>
+Not implemented.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>double &amp;<Function>asDouble</Function></FuncDef>
+ <ParamDef></ParamDef>
+</FuncSynopsis>
+<Para>
+Not implemented.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>int &amp;<Function>asInt</Function></FuncDef>
+ <ParamDef></ParamDef>
+</FuncSynopsis>
+<Para>
+Not implemented.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>QValueList&lt;QVariant&gt; &amp;<Function>asList</Function></FuncDef>
+ <ParamDef></ParamDef>
+</FuncSynopsis>
+<Para>
+Not implemented.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>QMap&lt;QString,QVariant&gt; &amp;<Function>asMap</Function></FuncDef>
+ <ParamDef></ParamDef>
+</FuncSynopsis>
+<Para>
+Not implemented.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>uint &amp;<Function>asUInt</Function></FuncDef>
+ <ParamDef></ParamDef>
+</FuncSynopsis>
+<Para>
+Not implemented.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>QValueListConstIterator&lt;QVariant&gt;<Function>listBegin</Function> const</FuncDef>
+ <ParamDef></ParamDef>
+</FuncSynopsis>
+<Para>
+Not implemented.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>QValueListConstIterator&lt;QVariant&gt;<Function>listEnd</Function> const</FuncDef>
+ <ParamDef></ParamDef>
+</FuncSynopsis>
+<Para>
+Not implemented.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>QMapConstIterator&lt;QString,QVariant&gt;<Function>mapBegin</Function> const</FuncDef>
+ <ParamDef></ParamDef>
+</FuncSynopsis>
+<Para>
+Not implemented.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>QMapConstIterator&lt;QString,QVariant&gt;<Function>mapEnd</Function> const</FuncDef>
+ <ParamDef></ParamDef>
+</FuncSynopsis>
+<Para>
+Not implemented.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>QMapConstIterator&lt;QString,QVariant&gt;<Function>mapFind</Function> const</FuncDef>
+ <ParamDef>const QString &<Parameter>key</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+Not implemented.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>QValueListConstIterator&lt;QString&gt;<Function>stringListBegin</Function> const</FuncDef>
+ <ParamDef></ParamDef>
+</FuncSynopsis>
+<Para>
+Not implemented.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>QValueListConstIterator&lt;QString&gt;<Function>stringListEnd</Function> const</FuncDef>
+ <ParamDef></ParamDef>
+</FuncSynopsis>
+<Para>
+Not implemented.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>const QBitArray <Function>toBitArray</Function> const</FuncDef>
+ <ParamDef></ParamDef>
+</FuncSynopsis>
+<Para>
+Not yet implemented. (Qt v3+)
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>const QValueList&lt;QVariant&gt;<Function>toList</Function> const</FuncDef>
+ <ParamDef></ParamDef>
+</FuncSynopsis>
+<Para>
+Not yet implemented.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>const QMap&lt;QString,QVariant&gt;<Function>toMap</Function> const</FuncDef>
+ <ParamDef></ParamDef>
+</FuncSynopsis>
+<Para>
+Not yet implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QVBox (Qt v2+)</Title>
+<Para>
+<Literal>QVBox</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QVButtonGroup (Qt v2+)</Title>
+<Para>
+<Literal>QVButtonGroup</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QVGroupBox (Qt v2+)</Title>
+<Para>
+<Literal>QVGroupBox</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QWaitCondition (Qt v2.2+)</Title>
+<Para>
+<Literal>QWaitCondition</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QWhatsThis</Title>
+<Para>
+<Literal>QWhatsThis</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QWidget</Title>
+<FuncSynopsis>
+ <FuncDef>QWExtra *<Function>extraData</Function></FuncDef>
+ <ParamDef></ParamDef>
+</FuncSynopsis>
+<Para>
+Not implemented.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>QFocusData *<Function>focusData</Function></FuncDef>
+ <ParamDef></ParamDef>
+</FuncSynopsis>
+<Para>
+Not implemented.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>void <Function>lower</Function></FuncDef>
+ <ParamDef></ParamDef>
+</FuncSynopsis>
+<Para>
+This has been renamed to <Literal>lowerW</Literal> in Python.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>void <Function>raise</Function></FuncDef>
+ <ParamDef></ParamDef>
+</FuncSynopsis>
+<Para>
+This has been renamed to <Literal>raiseW</Literal> in Python.
+</Para>
+</Sect2>
+<Sect2><Title>QWidgetList</Title>
+<Para>
+This class isn't implemented. Whenever a <Literal>QWidgetList</Literal> is the
+return type of a function or the type of an argument, a Python list of
+instances is used instead.
+</Para>
+</Sect2>
+<Sect2><Title>QWidgetStack</Title>
+<Para>
+<Literal>QWidgetStack</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QWindow</Title>
+<Para>
+<Literal>QWindow</Literal> is fully implemented (Qt v1.x).
+</Para>
+</Sect2>
+<Sect2><Title>QWindowsStyle (Qt v2+)</Title>
+<FuncSynopsis>
+ <FuncDef>void <Function>getButtonShift</Function></FuncDef>
+ <ParamDef>int &<Parameter>x</Parameter></ParamDef>
+ <ParamDef>int &<Parameter>y</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+This takes no parameters and returns a tuple of the <Literal>x</Literal> and
+<Literal>y</Literal> values. (Qt v2)
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>void <Function>scrollBarMetrics</Function></FuncDef>
+ <ParamDef>const QTabBar *<Parameter>sb</Parameter></ParamDef>
+ <ParamDef>int &<Parameter>sliderMin</Parameter></ParamDef>
+ <ParamDef>int &<Parameter>sliderMax</Parameter></ParamDef>
+ <ParamDef>int &<Parameter>sliderLength</Parameter></ParamDef>
+ <ParamDef>int &<Parameter>buttonDim</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+This takes only the <Literal>sb</Literal> parameter and returns a tuple of the
+<Literal>sliderMin</Literal>, <Literal>sliderMax</Literal>,
+<Literal>sliderLength</Literal> and <Literal>buttonDim</Literal> values.
+(Qt v2)
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>void <Function>tabbarMetrics</Function></FuncDef>
+ <ParamDef>const QTabBar *<Parameter>t</Parameter></ParamDef>
+ <ParamDef>int &<Parameter>hframe</Parameter></ParamDef>
+ <ParamDef>int &<Parameter>vframe</Parameter></ParamDef>
+ <ParamDef>int &<Parameter>overlap</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+This takes only the <Literal>t</Literal> parameter and returns a tuple of the
+<Literal>hframe</Literal>, <Literal>vframe</Literal> and
+<Literal>overlap</Literal> values. (Qt v2)
+</Para>
+</Sect2>
+<Sect2><Title>QWindowsXPStyle (Qt v3.0.1+, Windows)</Title>
+<Para>
+<Literal>QWindowsXPStyle</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QWizard (Qt v2+)</Title>
+<Para>
+<Literal>QWizard</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QWMatrix</Title>
+<Para>
+The Python <Literal>==</Literal>, <Literal>!=</Literal> and
+<Literal>*=</Literal> operators are supported.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>QWMatrix <Function>invert</Function> const</FuncDef>
+ <ParamDef>bool *<Parameter>invertible</Parameter> = 0</ParamDef>
+</FuncSynopsis>
+<Para>
+This takes no parameters and returns a tuple of the <Literal>QWMatrix</Literal>
+result and the <Literal>invertible</Literal> value.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>void <Function>map</Function> const</FuncDef>
+ <ParamDef>int <Parameter>x</Parameter></ParamDef>
+ <ParamDef>int <Parameter>y</Parameter></ParamDef>
+ <ParamDef>int *<Parameter>tx</Parameter></ParamDef>
+ <ParamDef>int *<Parameter>ty</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+This takes the <Literal>x</Literal> and <Literal>y</Literal> parameters and
+returns a tuple containing the <Literal>tx</Literal> and <Literal>ty</Literal>
+values.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>void <Function>map</Function> const</FuncDef>
+ <ParamDef>float <Parameter>x</Parameter></ParamDef>
+ <ParamDef>float <Parameter>y</Parameter></ParamDef>
+ <ParamDef>float *<Parameter>tx</Parameter></ParamDef>
+ <ParamDef>float *<Parameter>ty</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+This takes the <Literal>x</Literal> and <Literal>y</Literal> parameters and
+returns a tuple containing the <Literal>tx</Literal> and <Literal>ty</Literal>
+values. (Qt v1.x)
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>void <Function>map</Function> const</FuncDef>
+ <ParamDef>double <Parameter>x</Parameter></ParamDef>
+ <ParamDef>double <Parameter>y</Parameter></ParamDef>
+ <ParamDef>double *<Parameter>tx</Parameter></ParamDef>
+ <ParamDef>double *<Parameter>ty</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+This takes the <Literal>x</Literal> and <Literal>y</Literal> parameters and
+returns a tuple containing the <Literal>tx</Literal> and <Literal>ty</Literal>
+values. (Qt v2+)
+</Para>
+</Sect2>
+<Sect2><Title>QWorkspace (Qt v2.1+)</Title>
+<Para>
+<Literal>QWorkspace</Literal> is fully implemented.
+</Para>
+</Sect2>
+</Sect1>
+<Sect1><Title><Literal>qtaxcontainer</Literal> Module Reference</Title>
+<Sect2><Title>QAxBase (Windows, Qt v3+)</Title>
+<FuncSynopsis>
+ <FuncDef><Function>QAxObject</Function></FuncDef>
+ <ParamDef>IUnknown *<Parameter>iface</Parameter> = 0</ParamDef>
+</FuncSynopsis>
+<Para>
+Not implemented.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>long <Function>queryInterface</Function></FuncDef>
+ <ParamDef>const QUuid &amp;<Parameter>uuid</Parameter></ParamDef>
+ <ParamDef>void **<Parameter>iface</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+Not implemented.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>PropertyBag <Function>propertyBag</Function> const</FuncDef>
+ <ParamDef></ParamDef>
+</FuncSynopsis>
+<Para>
+Not implemented.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>void <Function>setPropertyBag</Function></FuncDef>
+ <ParamDef>const PropertyBag &amp;<Parameter>bag</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+Not implemented.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>unsigned long <Function>registerWeakActiveObject</Function></FuncDef>
+ <ParamDef>const QString &amp;<Parameter>guid</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+This is a utility method provided by PyQt to make it easier to use
+Mark Hammond's <Literal>win32com</Literal> module to manipulate objects
+created by the <Literal>qtaxcontainer</Literal> module.
+</Para>
+<Para>
+The <Literal>RegisterActiveObject()</Literal> COM function is called to
+register the <Literal>QAxBase</Literal> instance as a weak object with the
+<Literal>guid</Literal> GUID. The revoke handle is returned.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>static void <Function>revokeActiveObject</Function></FuncDef>
+ <ParamDef>unsigned long <Parameter>rhandle</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+This is a wrapper around the <Literal>RevokeActiveObject()</Literal> COM
+function and is called to revoke the object registered using
+<Literal>registerWeakActiveObject()</Literal>. <Literal>rhandle</Literal> is
+the revoke handle returned by <Literal>registerWeakActiveObject()</Literal>.
+</Para>
+</Sect2>
+<Sect2><Title>QAxObject (Windows, Qt v3+)</Title>
+<FuncSynopsis>
+ <FuncDef><Function>QAxObject</Function></FuncDef>
+ <ParamDef>IUnknown *<Parameter>iface</Parameter></ParamDef>
+ <ParamDef>QObject *<Parameter>parent</Parameter> = 0</ParamDef>
+ <ParamDef>const char *<Parameter>name</Parameter> = 0</ParamDef>
+</FuncSynopsis>
+<Para>
+Not implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QAxWidget (Windows, Qt v3+)</Title>
+<FuncSynopsis>
+ <FuncDef><Function>QAxWidget</Function></FuncDef>
+ <ParamDef>IUnknown *<Parameter>iface</Parameter></ParamDef>
+ <ParamDef>QWidget *<Parameter>parent</Parameter> = 0</ParamDef>
+ <ParamDef>const char *<Parameter>name</Parameter> = 0</ParamDef>
+</FuncSynopsis>
+<Para>
+Not implemented.
+</Para>
+</Sect2>
+</Sect1>
+<Sect1><Title><Literal>qtcanvas</Literal> Module Reference</Title>
+<Sect2><Title>QCanvas (Qt v2.2+)</Title>
+<Para>
+<Literal>QCanvas</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QCanvasEllipse (Qt v2.2+)</Title>
+<Para>
+<Literal>QCanvasEllipse</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QCanvasItem (Qt v2.2+)</Title>
+<Para>
+<Literal>QCanvasItem</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QCanvasItemList (Qt v2.2+)</Title>
+<Para>
+This class isn't implemented. Whenever a <Literal>QCanvasItemList</Literal> is
+the return type of a function or the type of an argument, a Python list of
+<Literal>QCanvasItem</Literal> instances is used instead.
+</Para>
+</Sect2>
+
+<Sect2><Title>QCanvasLine (Qt v2.2+)</Title>
+<Para>
+<Literal>QCanvasLine</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QCanvasPixmap (Qt v2.2+)</Title>
+<Para>
+<Literal>QCanvasPixmap</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QCanvasPixmapArray (Qt v2.2+)</Title>
+<FuncSynopsis>
+ <FuncDef><Function>QPixmapArray</Function></FuncDef>
+ <ParamDef>QList&lt;QPixmap&gt; <Parameter>pixmaps</Parameter></ParamDef>
+ <ParamDef>QList&lt;QPoint&gt; <Parameter>hotspots</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+The <Literal>pixmaps</Literal> argument is a Python list of QPixmap instances,
+and the <Literal>hotspots</Literal> argument is a Python list of QPoint
+instances. (Qt v2.2.0 - Qt v2.3.1)
+</Para>
+
+<FuncSynopsis>
+ <FuncDef><Function>QPixmapArray</Function></FuncDef>
+ <ParamDef>QValueList&lt;QPixmap&gt; <Parameter>pixmaps</Parameter></ParamDef>
+ <ParamDef>QPointArray <Parameter>hotspots</Parameter> = QPointArray()</ParamDef>
+</FuncSynopsis>
+<Para>
+The <Literal>pixmaps</Literal> argument is a Python list of QPixmap instances.
+(Qt v3+)
+</Para>
+</Sect2>
+
+<Sect2><Title>QCanvasPolygon (Qt v2.2+)</Title>
+<Para>
+<Literal>QCanvasPolygon</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QCanvasPolygonalItem (Qt v2.2+)</Title>
+<Para>
+<Literal>QCanvasPolygonalItem</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QCanvasRectangle (Qt v2.2+)</Title>
+<Para>
+<Literal>QCanvasRectangle</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QCanvasSpline (Qt v3.0+)</Title>
+<Para>
+<Literal>QCanvasSpline</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QCanvasSprite (Qt v2.2+)</Title>
+<Para>
+<Literal>QCanvasSprite</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QCanvasText (Qt v2.2+)</Title>
+<Para>
+<Literal>QCanvasText</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QCanvasView (Qt v2.2+)</Title>
+<Para>
+<Literal>QCanvasView</Literal> is fully implemented.
+</Para>
+</Sect2>
+</Sect1>
+<Sect1><Title><Literal>qtext</Literal> Module Reference</Title>
+
+<Sect2><Title>QextScintilla</Title>
+<FuncSynopsis>
+ <FuncDef>void <Function>getCursorPosition</Function></FuncDef>
+ <ParamDef>int *<Parameter>line</Parameter></ParamDef>
+ <ParamDef>int *<Parameter>index</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+This takes no parameters and returns a tuple of the values returned by the
+<Literal>line</Literal> and <Literal>index</Literal> pointers.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>void <Function>getSelection</Function></FuncDef>
+ <ParamDef>int *<Parameter>lineFrom</Parameter></ParamDef>
+ <ParamDef>int *<Parameter>indexFrom</Parameter></ParamDef>
+ <ParamDef>int *<Parameter>lineTo</Parameter></ParamDef>
+ <ParamDef>int *<Parameter>indexTo</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+This takes no parameters and returns a tuple of the values returned by the
+<Literal>lineFrom</Literal>, <Literal>indexFrom</Literal>,
+<Literal>lineTo</Literal> and <Literal>indexTo</Literal> pointers.
+</Para>
+</Sect2>
+
+<Sect2><Title>QextScintillaAPIs</Title>
+<Para>
+<Literal>QextScintillaAPIs</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QextScintillaBase</Title>
+<Para>
+<Literal>QextScintillaBase</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QextScintillaCommand</Title>
+<Para>
+<Literal>QextScintillaCommand</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QextScintillaCommandSet</Title>
+<Para>
+<Literal>QextScintillaCommandSet</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QextScintillaDocument</Title>
+<Para>
+<Literal>QextScintillaDocument</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QextScintillaLexer</Title>
+<Para>
+<Literal>QextScintillaLexer</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QextScintillaLexerBash (QScintilla v1.4+)</Title>
+<Para>
+<Literal>QextScintillaLexerBash</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QextScintillaLexerBatch (QScintilla v1.6+)</Title>
+<Para>
+<Literal>QextScintillaLexerBatch</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QextScintillaLexerCPP</Title>
+<Para>
+<Literal>QextScintillaLexerCPP</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QextScintillaLexerCSharp</Title>
+<Para>
+<Literal>QextScintillaLexerCSharp</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QextScintillaLexerCSS (QScintilla v1.6+)</Title>
+<Para>
+<Literal>QextScintillaLexerCSS</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QextScintillaLexerDiff (QScintilla v1.6+)</Title>
+<Para>
+<Literal>QextScintillaLexerDiff</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QextScintillaLexerHTML (QScintilla v1.1+)</Title>
+<Para>
+<Literal>QextScintillaLexerHTML</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QextScintillaLexerIDL</Title>
+<Para>
+<Literal>QextScintillaLexerIDL</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QextScintillaLexerJava</Title>
+<Para>
+<Literal>QextScintillaLexerJava</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QextScintillaLexerJavaScript</Title>
+<Para>
+<Literal>QextScintillaLexerJavaScript</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QextScintillaLexerLua (QScintilla v1.5+)</Title>
+<Para>
+<Literal>QextScintillaLexerLua</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QextScintillaLexerMakefile (QScintilla v1.6+)</Title>
+<Para>
+<Literal>QextScintillaLexerMakefile</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QextScintillaLexerPerl</Title>
+<Para>
+<Literal>QextScintillaLexerPerl</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QextScintillaLexerPOV (QScintilla v1.6+)</Title>
+<Para>
+<Literal>QextScintillaLexerPOV</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QextScintillaLexerProperties (QScintilla v1.6+)</Title>
+<Para>
+<Literal>QextScintillaLexerProperties</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QextScintillaLexerPython</Title>
+<Para>
+<Literal>QextScintillaLexerPython</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QextScintillaLexerRuby (QScintilla v1.5+)</Title>
+<Para>
+<Literal>QextScintillaLexerRuby</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QextScintillaLexerSQL (QScintilla v1.1+)</Title>
+<Para>
+<Literal>QextScintillaLexerSQL</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QextScintillaLexerTeX (QScintilla v1.6+)</Title>
+<Para>
+<Literal>QextScintillaLexerTeX</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QextScintillaMacro</Title>
+<Para>
+<Literal>QextScintillaMacro</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QextScintillaPrinter</Title>
+<Para>
+<Literal>QextScintillaPrinter</Literal> is fully implemented.
+</Para>
+</Sect2>
+</Sect1>
+<Sect1><Title><Literal>qtgl</Literal> Module Reference</Title>
+<Sect2><Title>QGL</Title>
+<Para>
+<Literal>QGL</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QGLContext</Title>
+<Para>
+<Literal>QGLContext</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QGLFormat</Title>
+<Para>
+<Literal>QGLFormat</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QGLWidget</Title>
+<Para>
+<Literal>QGLWidget</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QGLColormap (Qt v3.0+)</Title>
+<FuncSynopsis>
+ <FuncDef>void <Function>setEntries</Function></FuncDef>
+ <ParamDef>int <Parameter>count</Parameter></ParamDef>
+ <ParamDef>const QRgb *<Parameter>colors</Parameter></ParamDef>
+ <ParamDef>int <Parameter>base</Parameter> = 0</ParamDef>
+</FuncSynopsis>
+<Para>
+Not yet implemented.
+</Para>
+</Sect2>
+</Sect1>
+<Sect1><Title><Literal>qtnetwork</Literal> Module Reference</Title>
+<Sect2><Title>QDns (Qt v2.2+)</Title>
+<Para>
+<Literal>QDns</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QFtp (Qt v2.2+)</Title>
+<FuncSynopsis>
+ <FuncDef>Q_LONG <Function>readBlock</Function></FuncDef>
+ <ParamDef>char *<Parameter>data</Parameter></ParamDef>
+ <ParamDef>Q_ULONG <Parameter>maxlen</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+This takes a single <Literal>maxlen</Literal> parameter. The
+<Literal>data</Literal> is returned if there was no error, otherwise
+<Literal>None</Literal> is returned.
+</Para>
+</Sect2>
+<Sect2><Title>QHostAddress (Qt v2.2+)</Title>
+<FuncSynopsis>
+ <FuncDef><Function>QHostAddress</Function></FuncDef>
+ <ParamDef>Q_UINT8 *<Parameter>ip6Addr</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+Not yet implemented.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef><Function>QHostAddress</Function></FuncDef>
+ <ParamDef>const Q_IPV6ADDR &amp;<Parameter>ip6Addr</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+Not yet implemented.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>void <Function>setAddress</Function></FuncDef>
+ <ParamDef>Q_UINT8 *<Parameter>ip6Addr</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+Not yet implemented.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>Q_IPV6ADDR <Function>toIPv6Address</Function> const</FuncDef>
+ <ParamDef><Parameter></Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+Not yet implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QHttp (Qt v3+)</Title>
+<FuncSynopsis>
+ <FuncDef>Q_LONG <Function>readBlock</Function></FuncDef>
+ <ParamDef>char *<Parameter>data</Parameter></ParamDef>
+ <ParamDef>Q_ULONG <Parameter>maxlen</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+This takes a single <Literal>maxlen</Literal> parameter. The
+<Literal>data</Literal> is returned if there was no error, otherwise
+<Literal>None</Literal> is returned.
+</Para>
+</Sect2>
+
+<Sect2><Title>QHttpHeader (Qt v3.1+)</Title>
+<Para>
+<Literal>QHttpHeader</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QHttpRequestHeader (Qt v3.1+)</Title>
+<Para>
+<Literal>QHttpRequestHeader</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QHttpResponseHeader (Qt v3.1+)</Title>
+<Para>
+<Literal>QHttpResponseHeader</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QLocalFs (Qt v2.1+)</Title>
+<Para>
+<Literal>QLocalFs</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QServerSocket (Qt v2.2+)</Title>
+<Para>
+<Literal>QServerSocket</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QSocket (Qt v2.2+)</Title>
+<FuncSynopsis>
+ <FuncDef>Q_LONG <Function>readBlock</Function></FuncDef>
+ <ParamDef>char *<Parameter>data</Parameter></ParamDef>
+ <ParamDef>Q_ULONG <Parameter>len</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+This takes a single <Literal>len</Literal> parameter. The
+<Literal>data</Literal> is returned if there was no error, otherwise
+<Literal>Py_None</Literal> is returned.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>Q_LONG <Function>readLine</Function></FuncDef>
+ <ParamDef>char *<Parameter>data</Parameter></ParamDef>
+ <ParamDef>Q_ULONG <Parameter>maxlen</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+This takes a single <Literal>maxlen</Literal> parameter. The
+<Literal>data</Literal> is returned if there was no error, otherwise
+<Literal>Py_None</Literal> is returned.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>Q_LONG <Function>writeBlock</Function></FuncDef>
+ <ParamDef>const char *<Parameter>data</Parameter></ParamDef>
+ <ParamDef>Q_ULONG <Parameter>len</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+<Literal>len</Literal> is derived from <Literal>data</Literal> and not passed
+as a parameter.
+</Para>
+</Sect2>
+<Sect2><Title>QSocketDevice (Qt v2.2+)</Title>
+<FuncSynopsis>
+ <FuncDef>Q_LONG <Function>readBlock</Function></FuncDef>
+ <ParamDef>char *<Parameter>data</Parameter></ParamDef>
+ <ParamDef>Q_ULONG <Parameter>len</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+This takes a single <Literal>len</Literal> parameter. The
+<Literal>data</Literal> is returned if there was no error, otherwise
+<Literal>None</Literal> is returned.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>Q_LONG <Function>writeBlock</Function></FuncDef>
+ <ParamDef>const char *<Parameter>data</Parameter></ParamDef>
+ <ParamDef>Q_ULONG <Parameter>len</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+<Literal>len</Literal> is derived from <Literal>data</Literal> and not passed
+as a parameter.
+</Para>
+</Sect2>
+</Sect1>
+<Sect1><Title><Literal>qtpe</Literal> Module Reference</Title>
+
+<Sect2><Title>QPEApplication</Title>
+<FuncSynopsis>
+ <FuncDef><Function>QApplication</Function></FuncDef>
+ <ParamDef>int& <Parameter>argc</Parameter></ParamDef>
+ <ParamDef>char **<Parameter>argv</Parameter></ParamDef>
+ <ParamDef>Type <Parameter>type</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+This takes two parameters, the first of which is a list of argument strings.
+Arguments used by Qt are removed from the list.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>int <Function>exec</Function></FuncDef>
+ <ParamDef></ParamDef>
+</FuncSynopsis>
+<Para>
+This has been renamed to <Literal>exec_loop</Literal> in Python.
+</Para>
+</Sect2>
+
+<Sect2><Title>AppLnk</Title>
+<FuncSynopsis>
+ <FuncDef>virtual QString <Function>exec</Function> const</FuncDef>
+ <ParamDef></ParamDef>
+</FuncSynopsis>
+<Para>
+This has been renamed to <Literal>exec_property</Literal> in Python.
+</Para>
+</Sect2>
+
+<Sect2><Title>AppLnkSet</Title>
+<Para>
+<Literal>AppLnkSet</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>Config</Title>
+<Para>
+<Literal>Config</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>DateFormat</Title>
+<Para>
+<Literal>DateFormat</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>DocLnk</Title>
+<FuncSynopsis>
+ <FuncDef>QString <Function>exec</Function> const</FuncDef>
+ <ParamDef></ParamDef>
+</FuncSynopsis>
+<Para>
+This has been renamed to <Literal>exec_property</Literal> in Python.
+</Para>
+</Sect2>
+
+<Sect2><Title>DocLnkSet</Title>
+<Para>
+<Literal>DocLnkSet</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>FileManager</Title>
+<Para>
+<Literal>FileManager</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>FileSelector</Title>
+<Para>
+<Literal>FileSelector</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>FileSelectorItem</Title>
+<Para>
+<Literal>FileSelectorItem</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>FontDatabase</Title>
+<Para>
+<Literal>FontDatabase</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>Global</Title>
+<FuncSynopsis>
+ <FuncDef>static void <Function>setBuiltinCommands</Function></FuncDef>
+ <ParamDef>Command *</ParamDef>
+</FuncSynopsis>
+<Para>
+Not implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>MenuButton</Title>
+<Para>
+<Literal>MenuButton</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QCopEnvelope</Title>
+<Para>
+<Literal>QCopEnvelope</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QDawg</Title>
+<Para>
+<Literal>QDawg</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QPEMenuBar</Title>
+<Para>
+<Literal>QPEMenuBar</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QPEToolBar</Title>
+<Para>
+<Literal>QPEToolBar</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>Resource</Title>
+<Para>
+<Literal>Resource</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+</Sect1>
+<Sect1><Title><Literal>qtsql</Literal> Module Reference</Title>
+<Sect2><Title>QDataBrowser (Qt v3+)</Title>
+<FuncSynopsis>
+ <FuncDef>virtual void <Function>del</Function></FuncDef>
+ <ParamDef></ParamDef>
+</FuncSynopsis>
+<Para>
+This has been renamed <Literal>delOnCursor</Literal> in Python.
+</Para>
+</Sect2>
+<Sect2><Title>QDataTable (Qt v3+)</Title>
+<Para>
+<Literal>QDataTable</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QDataView (Qt v3+)</Title>
+<Para>
+<Literal>QDataView</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QEditorFactory (Qt v3+)</Title>
+<Para>
+<Literal>QEditorFactory</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QSql (Qt v3+)</Title>
+<Para>
+<Literal>QSql</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QSqlCursor (Qt v3+)</Title>
+<FuncSynopsis>
+ <FuncDef>virtual int <Function>del</Function></FuncDef>
+ <ParamDef>bool <Parameter>invalidate</Parameter> = TRUE</ParamDef>
+</FuncSynopsis>
+<Para>
+This has been renamed <Literal>delRecords</Literal> in Python.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>virtual int <Function>del</Function></FuncDef>
+ <ParamDef>const QString &amp;<Parameter>filter</Parameter></ParamDef>
+ <ParamDef>bool <Parameter>invalidate</Parameter> = TRUE</ParamDef>
+</FuncSynopsis>
+<Para>
+This has been renamed <Literal>delRecords</Literal> in Python.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>bool <Function>exec</Function></FuncDef>
+ <ParamDef>const QString &amp;<Parameter>query</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+This has been renamed <Literal>execQuery</Literal> in Python.
+</Para>
+</Sect2>
+<Sect2><Title>QSqlDatabase (Qt v3+)</Title>
+<FuncSynopsis>
+ <FuncDef>QSqlQuery <Function>exec</Function></FuncDef>
+ <ParamDef>const QString &amp;<Parameter>query</Parameter> = QString::null</ParamDef>
+</FuncSynopsis>
+<Para>
+This has been renamed <Literal>execStatement</Literal> in Python.
+</Para>
+</Sect2>
+<Sect2><Title>QSqlDriver (Qt v3+)</Title>
+<Para>
+<Literal>QSqlDriver</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QSqlEditorFactory (Qt v3+)</Title>
+<Para>
+<Literal>QSqlEditorFactory</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QSqlError (Qt v3+)</Title>
+<Para>
+<Literal>QSqlError</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QSqlField (Qt v3+)</Title>
+<Para>
+<Literal>QSqlField</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QSqlFieldInfo (Qt v3+)</Title>
+<Para>
+<Literal>QSqlFieldInfo</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QSqlForm (Qt v3+)</Title>
+<Para>
+<Literal>QSqlForm</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QSqlIndex (Qt v3+)</Title>
+<Para>
+<Literal>QSqlIndex</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QSqlPropertyMap (Qt v3+)</Title>
+<Para>
+<Literal>QSqlPropertyMap</Literal> is fully implemented. However, because PyQt
+does not allow new properties to be defined, it is not possible to implement
+custom editor widgets in Python and add them to a property map. These will
+simply be ignored.
+</Para>
+
+<Para>
+This problem may be addressed in a future release of PyQt.
+</Para>
+</Sect2>
+<Sect2><Title>QSqlQuery (Qt v3+)</Title>
+<FuncSynopsis>
+ <FuncDef>QMap&lt;QString,QVariant&gt; <Function>boundValues</Function> const</FuncDef>
+ <ParamDef></ParamDef>
+</FuncSynopsis>
+<Para>
+Not yet implemented. (Qt v3.2.0+)
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>virtual bool <Function>exec</Function></FuncDef>
+ <ParamDef>const QString &amp;<Parameter>query</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+This has been renamed <Literal>execQuery</Literal> in Python.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>bool <Function>exec</Function></FuncDef>
+ <ParamDef></ParamDef>
+</FuncSynopsis>
+<Para>
+This has been renamed <Literal>execQuery</Literal> in Python. (Qt v3.1+)
+</Para>
+</Sect2>
+<Sect2><Title>QSqlRecord (Qt v3+)</Title>
+<Para>
+<Literal>QSqlRecord</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QSqlRecordInfo (Qt v3+)</Title>
+<Para>
+<Literal>QSqlRecordInfo</Literal> is implemented as a Python list of
+<Literal>QSqlFieldInfo</Literal> instances.
+</Para>
+</Sect2>
+<Sect2><Title>QSqlResult (Qt v3+)</Title>
+<Para>
+<Literal>QSqlResult</Literal> is fully implemented.
+</Para>
+</Sect2>
+<Sect2><Title>QSqlSelectCursor (Qt v3.2.0+)</Title>
+<FuncSynopsis>
+ <FuncDef>int <Function>del</Function></FuncDef>
+ <ParamDef>bool <Parameter>invalidate</Parameter> = TRUE</ParamDef>
+</FuncSynopsis>
+<Para>
+This has been renamed <Literal>delRecords</Literal> in Python.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>bool <Function>exec</Function></FuncDef>
+ <ParamDef>const QString &amp;<Parameter>query</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+This has been renamed <Literal>execQuery</Literal> in Python.
+</Para>
+</Sect2>
+</Sect1>
+<Sect1><Title><Literal>qttable</Literal> Module Reference</Title>
+<Sect2><Title>QTable (Qt v2.2+)</Title>
+<Para>
+<Literal>QTable</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QTableItem (Qt v2.2+)</Title>
+<Para>
+<Literal>QTableItem</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QCheckTableItem (Qt v3+)</Title>
+<Para>
+<Literal>QCheckTableItem</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QComboTableItem (Qt v3+)</Title>
+<Para>
+<Literal>QComboTableItem</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QTableSelection (Qt v2.2+)</Title>
+<Para>
+<Literal>QTableSelection</Literal> is fully implemented.
+</Para>
+</Sect2>
+</Sect1>
+<Sect1><Title><Literal>qtui</Literal> Module Reference</Title>
+<Sect2><Title>QWidgetFactory (Qt v3+)</Title>
+<Para>
+<Literal>QWidgetFactory</Literal> is fully implemented.
+</Para>
+</Sect2>
+</Sect1>
+<Sect1><Title><Literal>qtxml</Literal> Module Reference</Title>
+<Sect2><Title>QDomImplementation (Qt v2.2+)</Title>
+<Para>
+<Literal>QDomImplementation</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QDomNode (Qt v2.2+)</Title>
+<Para>
+<Literal>QDomNode</Literal> is fully implemented, including the Python
+<Literal>==</Literal> and <Literal>!=</Literal> operators.
+</Para>
+</Sect2>
+
+<Sect2><Title>QDomNodeList (Qt v2.2+)</Title>
+<Para>
+<Literal>QDomNodeList</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QDomDocument (Qt v2.2+)</Title>
+<FuncSynopsis>
+ <FuncDef>bool <Function>setContent</Function></FuncDef>
+ <ParamDef>const QCString &amp;<Parameter>buffer</Parameter></ParamDef>
+ <ParamDef>bool <Parameter>namespaceProcessing</Parameter></ParamDef>
+ <ParamDef>QString *<Parameter>errorMsg</Parameter> = 0</ParamDef>
+ <ParamDef>int *<Parameter>errorLine</Parameter> = 0</ParamDef>
+ <ParamDef>int *<Parameter>errorColumn</Parameter> = 0</ParamDef>
+</FuncSynopsis>
+<Para>
+This takes the <Literal>buffer</Literal> and
+<Literal>namespaceProcessing</Literal> parameters and returns a tuple
+containing the <Literal>bool</Literal> result and the
+<Literal>errorMsg</Literal>, <Literal>errorLine</Literal> and
+<Literal>errorColumn</Literal> values. (Qt v3+)
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>bool <Function>setContent</Function></FuncDef>
+ <ParamDef>const QByteArray &amp;<Parameter>buffer</Parameter></ParamDef>
+ <ParamDef>bool <Parameter>namespaceProcessing</Parameter></ParamDef>
+ <ParamDef>QString *<Parameter>errorMsg</Parameter> = 0</ParamDef>
+ <ParamDef>int *<Parameter>errorLine</Parameter> = 0</ParamDef>
+ <ParamDef>int *<Parameter>errorColumn</Parameter> = 0</ParamDef>
+</FuncSynopsis>
+<Para>
+This takes the <Literal>buffer</Literal> and
+<Literal>namespaceProcessing</Literal> parameters and returns a tuple
+containing the <Literal>bool</Literal> result and the
+<Literal>errorMsg</Literal>, <Literal>errorLine</Literal> and
+<Literal>errorColumn</Literal> values. (Qt v3+)
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>bool <Function>setContent</Function></FuncDef>
+ <ParamDef>const QString &amp;<Parameter>text</Parameter></ParamDef>
+ <ParamDef>bool <Parameter>namespaceProcessing</Parameter></ParamDef>
+ <ParamDef>QString *<Parameter>errorMsg</Parameter> = 0</ParamDef>
+ <ParamDef>int *<Parameter>errorLine</Parameter> = 0</ParamDef>
+ <ParamDef>int *<Parameter>errorColumn</Parameter> = 0</ParamDef>
+</FuncSynopsis>
+<Para>
+This takes the <Literal>text</Literal> and
+<Literal>namespaceProcessing</Literal> parameters and returns a tuple
+containing the <Literal>bool</Literal> result and the
+<Literal>errorMsg</Literal>, <Literal>errorLine</Literal> and
+<Literal>errorColumn</Literal> values. (Qt v3+)
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>bool <Function>setContent</Function></FuncDef>
+ <ParamDef>const QIODevice *<Parameter>dev</Parameter></ParamDef>
+ <ParamDef>bool <Parameter>namespaceProcessing</Parameter></ParamDef>
+ <ParamDef>QString *<Parameter>errorMsg</Parameter> = 0</ParamDef>
+ <ParamDef>int *<Parameter>errorLine</Parameter> = 0</ParamDef>
+ <ParamDef>int *<Parameter>errorColumn</Parameter> = 0</ParamDef>
+</FuncSynopsis>
+<Para>
+This takes the <Literal>dev</Literal> and
+<Literal>namespaceProcessing</Literal> parameters and returns a tuple
+containing the <Literal>bool</Literal> result and the
+<Literal>errorMsg</Literal>, <Literal>errorLine</Literal> and
+<Literal>errorColumn</Literal> values. (Qt v3+)
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>bool <Function>setContent</Function></FuncDef>
+ <ParamDef>const QCString &amp;<Parameter>buffer</Parameter></ParamDef>
+ <ParamDef>QString *<Parameter>errorMsg</Parameter> = 0</ParamDef>
+ <ParamDef>int *<Parameter>errorLine</Parameter> = 0</ParamDef>
+ <ParamDef>int *<Parameter>errorColumn</Parameter> = 0</ParamDef>
+</FuncSynopsis>
+<Para>
+This takes the <Literal>buffer</Literal> parameter only and returns a tuple
+containing the <Literal>bool</Literal> result and the
+<Literal>errorMsg</Literal>, <Literal>errorLine</Literal> and
+<Literal>errorColumn</Literal> values. (Qt v3+)
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>bool <Function>setContent</Function></FuncDef>
+ <ParamDef>const QByteArray &amp;<Parameter>buffer</Parameter></ParamDef>
+ <ParamDef>QString *<Parameter>errorMsg</Parameter> = 0</ParamDef>
+ <ParamDef>int *<Parameter>errorLine</Parameter> = 0</ParamDef>
+ <ParamDef>int *<Parameter>errorColumn</Parameter> = 0</ParamDef>
+</FuncSynopsis>
+<Para>
+This takes the <Literal>buffer</Literal> parameter only and returns a tuple
+containing the <Literal>bool</Literal> result and the
+<Literal>errorMsg</Literal>, <Literal>errorLine</Literal> and
+<Literal>errorColumn</Literal> values. (Qt v3+)
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>bool <Function>setContent</Function></FuncDef>
+ <ParamDef>const QString &amp;<Parameter>text</Parameter></ParamDef>
+ <ParamDef>QString *<Parameter>errorMsg</Parameter> = 0</ParamDef>
+ <ParamDef>int *<Parameter>errorLine</Parameter> = 0</ParamDef>
+ <ParamDef>int *<Parameter>errorColumn</Parameter> = 0</ParamDef>
+</FuncSynopsis>
+<Para>
+This takes the <Literal>text</Literal> parameter only and returns a tuple
+containing the <Literal>bool</Literal> result and the
+<Literal>errorMsg</Literal>, <Literal>errorLine</Literal> and
+<Literal>errorColumn</Literal> values. (Qt v3+)
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>bool <Function>setContent</Function></FuncDef>
+ <ParamDef>const QIODevice *<Parameter>dev</Parameter></ParamDef>
+ <ParamDef>QString *<Parameter>errorMsg</Parameter> = 0</ParamDef>
+ <ParamDef>int *<Parameter>errorLine</Parameter> = 0</ParamDef>
+ <ParamDef>int *<Parameter>errorColumn</Parameter> = 0</ParamDef>
+</FuncSynopsis>
+<Para>
+This takes the <Literal>dev</Literal> parameter only and returns a tuple
+containing the <Literal>bool</Literal> result and the
+<Literal>errorMsg</Literal>, <Literal>errorLine</Literal> and
+<Literal>errorColumn</Literal> values. (Qt v3+)
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>bool <Function>setContent</Function></FuncDef>
+ <ParamDef>QXmlInputSource *<Parameter>source</Parameter></ParamDef>
+ <ParamDef>QXmlReader *<Parameter>reader</Parameter></ParamDef>
+ <ParamDef>QString *<Parameter>errorMsg</Parameter> = 0</ParamDef>
+ <ParamDef>int *<Parameter>errorLine</Parameter> = 0</ParamDef>
+ <ParamDef>int *<Parameter>errorColumn</Parameter> = 0</ParamDef>
+</FuncSynopsis>
+<Para>
+Not yet implemented. (Qt v3.2.0+)
+</Para>
+</Sect2>
+
+<Sect2><Title>QDomDocumentFragment (Qt v2.2+)</Title>
+<Para>
+<Literal>QDomDocumentFragment</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QDomDocumentType (Qt v2.2+)</Title>
+<Para>
+<Literal>QDomDocumentType</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QDomNamedNodeMap (Qt v2.2+)</Title>
+<Para>
+<Literal>QDomNamedNodeMap</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QDomCharacterData (Qt v2.2+)</Title>
+<Para>
+<Literal>QDomCharacterData</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QDomAttr (Qt v2.2+)</Title>
+<Para>
+<Literal>QDomAttr</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QDomElement (Qt v2.2+)</Title>
+<Para>
+<Literal>QDomElement</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QDomText (Qt v2.2+)</Title>
+<Para>
+<Literal>QDomText</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QDomComment (Qt v2.2+)</Title>
+<Para>
+<Literal>QDomComment</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QDomCDATASection (Qt v2.2+)</Title>
+<Para>
+<Literal>QDomCDATASection</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QDomNotation (Qt v2.2+)</Title>
+<Para>
+<Literal>QDomNotation</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QDomEntity (Qt v2.2+)</Title>
+<Para>
+<Literal>QDomEntity</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QDomEntityReference (Qt v2.2+)</Title>
+<Para>
+<Literal>QDomEntityReference</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QDomProcessingInstruction (Qt v2.2+)</Title>
+<Para>
+<Literal>QDomProcessingInstruction</Literal> is fully implemented.
+</Para>
+</Sect2>
+</Sect1>
+</Article>
diff --git a/doc/qtdocs.sip b/doc/qtdocs.sip
new file mode 100644
index 0000000..1113e94
--- /dev/null
+++ b/doc/qtdocs.sip
@@ -0,0 +1,1920 @@
+// This is the SIP file for organising the PyQt documentation.
+//
+// Copyright (c) 2007
+// Riverbank Computing Limited <info@riverbankcomputing.co.uk>
+//
+// This file is part of PyQt.
+//
+// This copy of PyQt is free software; you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2, or (at your option) any later
+// version.
+//
+// PyQt is supplied in the hope that it will be useful, but WITHOUT ANY
+// WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+// FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+// details.
+//
+// You should have received a copy of the GNU General Public License along with
+// PyQt; see the file LICENSE. If not, write to the Free Software Foundation,
+// Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+
+%Module Dummy
+
+
+%Include qt/versions.sip
+
+
+%Doc
+<!DOCTYPE Article PUBLIC "-//OASIS//DTD DocBook V3.1//EN">
+<Article>
+<ArtHeader>
+ <Title>Python Bindings for Qt (3.18.1)</Title>
+ <Author>
+ <FirstName>Phil</FirstName>
+ <Surname>Thompson</Surname>
+ </Author>
+ <Abstract>
+ <Para>
+ This document describes a set of Python bindings for the Qt widget set.
+ Contact the author at <Email>phil@riverbankcomputing.co.uk</Email>.
+ </Para>
+ </Abstract>
+</ArtHeader>
+
+
+<Sect1><Title>Introduction</Title>
+<Para>
+PyQt is a set of Python bindings for the Qt toolkit and available for all
+platforms supported by Qt, including Windows, Linux, UNIX, MacOS/X and embedded
+systems such as the Sharp Zaurus and the Compaq iPAQ. They have been tested
+against Qt versions 1.43 to 3.3.6, Qt Non-commercial, Qtopia 1.5.0, and Python
+versions 1.5 to 2.4.2. Qt/Embedded v3 is not supported. Qt v4 is supported
+by PyQt v4.
+</Para>
+
+<Para>
+PyQt is available under the GPL license for use with the GPL version of Qt, a
+a commercial license for use with the commercial version of Qt, a
+non-commercial license for use with the non-commercial version of Qt v2, and an
+educational license for use with the educational version of Qt.
+</Para>
+
+<Para>
+There is also an evaluation version of PyQt for Windows. This must be used
+with the corresponding evaluation version of Qt.
+</Para>
+
+<Para>
+PyQt is built using SIP (a tool for generating Python extension modules for
+C++ class libraries). SIP v4.6 or later must be installed in order to build
+and run this version of PyQt.
+</Para>
+
+<Para>
+PyQt for MacOS/X requires Qt v3.1.0 or later and Python v2.3 or later.
+</Para>
+
+<Para>
+The bindings are implemented as a number of Python modules
+</Para>
+
+<ItemizedList>
+<ListItem>
+<Para>
+<Literal>qt</Literal> is the main module and contains the core classes and most
+user interface widgets.
+</Para>
+</ListItem>
+
+<ListItem>
+<Para>
+<Literal>qtaxcontainer</Literal> contains a sub-set of the classes implemented
+in Qt's QAxContainer module, part of Qt's ActiveQt framework.
+</Para>
+</ListItem>
+
+<ListItem>
+<Para>
+<Literal>qtcanvas</Literal> contains the classes implemented in Qt's Canvas
+module.
+</Para>
+</ListItem>
+
+<ListItem>
+<Para>
+<Literal>qtgl</Literal> contains the classes implemented in Qt's OpenGL module.
+</Para>
+</ListItem>
+
+<ListItem>
+<Para>
+<Literal>qtnetwork</Literal> contains the classes implemented in Qt's Network
+module.
+</Para>
+</ListItem>
+
+<ListItem>
+<Para>
+<Literal>qtpe</Literal> contains the classes implemented in Qtopia (originally
+called the Qt Palmtop Environment). It is only supported with Qt/Embedded.
+</Para>
+</ListItem>
+
+<ListItem>
+<Para>
+<Literal>qtsql</Literal> contains the classes implemented in Qt's SQL module.
+</Para>
+</ListItem>
+
+<ListItem>
+<Para>
+<Literal>qttable</Literal> contains the classes implemented in Qt's Table
+module.
+</Para>
+</ListItem>
+
+<ListItem>
+<Para>
+<Literal>qtui</Literal> contains the classes implemented in Qt's qui library.
+These allow GUIs to be created directly from Qt Designer's
+<Literal>.ui</Literal> files.
+</Para>
+</ListItem>
+
+<ListItem>
+<Para>
+<Literal>qtxml</Literal> contains the classes implemented in Qt's XML module.
+</Para>
+</ListItem>
+
+<ListItem>
+<Para>
+<Literal>qtext</Literal> contains useful third-party classes that are not part
+of Qt. At the moment it contains bindings for QScintilla, the port to Qt of
+the Scintilla programmer's editor class.
+</Para>
+</ListItem>
+</ItemizedList>
+
+<Para>
+PyQt also includes the <Literal>pyuic</Literal> and
+<Literal>pylupdate</Literal> utilities which correspond to the Qt
+<Literal>uic</Literal> and <Literal>lupdate</Literal> utilities.
+<Literal>pyuic</Literal> converts the GUI designs created with Qt Designer to
+executable Python code. <Literal>pylupdate</Literal> scans Python code,
+extracts all strings that are candidates for internationalisation, and creates
+an XML file for use by Qt Linguist.
+</Para>
+
+<Sect2><Title>Changes</Title>
+<Para>
+The changes visible to the Python programmer in this release are as follows.
+</Para>
+<ItemizedList>
+
+<ListItem>
+<Para>
+This version requires SIP v4.4 (or later).
+</Para>
+</ListItem>
+
+<ListItem>
+<Para>
+Concatenating Python strings and <Literal>QString</Literal>s is now supported.
+</Para>
+</ListItem>
+
+<ListItem>
+<Para>
+<Literal>QString</Literal> now supports the <Literal>*</Literal> and
+<Literal>*=</Literal> operators that behave as they do for Python strings.
+</Para>
+</ListItem>
+
+<ListItem>
+<Para>
+<Literal>QString</Literal> is more interoperable with Python string and unicode
+objects. For example they can be passed as arguments to
+<Literal>open()</Literal> and to most (but not all) string methods.
+</Para>
+</ListItem>
+
+<ListItem>
+<Para>
+<Literal>QPopupMenu</Literal> (and sub-classes) instances now transfer
+ownership of the menu to Python in the call to <Literal>exec_loop()</Literal>.
+This means the menu's resources are all released when the Python wrapper is
+garbage collected without needing to call
+<Literal>QObject.deleteLater()</Literal>.
+</Para>
+</ListItem>
+
+<ListItem>
+<Para>
+<Literal>QObject.sender()</Literal> now handles Python signals.
+</Para>
+</ListItem>
+
+<ListItem>
+<Para>
+The missing <Literal>MacintoshVersion</Literal> enum has been added.
+</Para>
+</ListItem>
+
+<ListItem>
+<Para>
+<Literal>PYQT_BUILD</Literal> has been removed.
+</Para>
+</ListItem>
+
+<ListItem>
+<Para>
+The convention for converting between a C/C++ null pointer and Python's
+<Literal>None</Literal> object has now been universally applied. In previous
+versions a null pointer to, for example, a Qt list container would often be
+converted to an empty list rather than <Literal>None</Literal>.
+</Para>
+</ListItem>
+
+</ItemizedList>
+</Sect2>
+</Sect1>
+
+
+<Sect1><Title>Other PyQt Goodies</Title>
+<Sect2><Title>Using Qt Designer</Title>
+<Para>
+Qt Designer is a GPL'ed GUI design editor provided by Trolltech as part of Qt.
+It generates an XML description of a GUI design. Qt includes
+<Literal>uic</Literal> which generates C++ code from that XML.
+</Para>
+
+<Para>
+PyQt includes <Literal>pyuic</Literal> which generates Python code from the
+same XML. The Python code is self contained and can be executed immediately.
+</Para>
+
+<Para>
+It is sometimes useful to be able to include some specific Python code in the
+output generated by <Literal>pyuic</Literal>. For example, if you are using
+custom widgets, <Literal>pyuic</Literal> has no way of knowing the name of the
+Python module containing the widget and so cannot generate the required
+<Literal>import</Literal> statement. To help get around this,
+<Literal>pyuic</Literal> will extract any lines entered in the
+<Literal>Comment</Literal> field of Qt Designer's
+<Literal>Form Settings</Literal> dialog that begin with
+<Literal>Python:</Literal> and copies them to the generated output.
+</Para>
+
+<Para>
+Here's a simple example showing the contents of the <Literal>Comment</Literal>
+field.
+</Para>
+
+<ProgramListing>
+This comment will be ignored by pyuic.
+Python:
+Python:# Import our custom widget.
+Python:from foo import bar
+</ProgramListing>
+
+<Para>
+Here's the corresponding output from <Literal>pyuic</Literal>.
+</Para>
+
+<ProgramListing>
+from qt import *
+
+# Import our custom widget.
+from foo import bar
+</ProgramListing>
+
+<Para>
+Thanks to Christian Bird, <Literal>pyuic</Literal> will extract Python code
+entered using Qt Designer to implement slots. In Qt Designer, when you need to
+edit a slot and the source editor appears, enter Python code between the curly
+braces. Don't worry about the correct starting indent level, each line is
+prepended with a correct indentation.
+</Para>
+
+<Para>
+Make sure that the <Literal>ui.h</Literal> file is in the same directory as the
+<Literal>.ui</Literal> file when using <Literal>pyuic</Literal>. The
+<Literal>.ui</Literal> file implies the name of the <Literal>.ui.h</Literal>
+file so there is no need to specify it on the command line.
+</Para>
+
+<Para>
+Here's an example of a simple slot.
+</Para>
+
+<ProgramListing>
+void DebMainWindowFrm::browsePushButtonClicked()
+{
+if self.debugging:
+ QMessageBox.critical(self, "Event", "browse pushbutton was clicked!")
+}
+</ProgramListing>
+
+<Para>
+Here is the resulting code when <Literal>pyuic</Literal> is run.
+</Para>
+
+<ProgramListing>
+class DebMainWindowFrm(QMainWindow):
+ ...stuff...
+ def browsePushButtonClicked(self):
+ if self.debugging:
+ QMessageBox.critical(self, "Event", "browse pushbutton was clicked!")
+</ProgramListing>
+
+<Para>
+Note that indenting is as normal and that <Literal>self</Literal> and all other
+parameters passed to the slot are available.
+</Para>
+
+<Para>
+If you use this, you will need to turn off all of the fancy options for the C++
+editor in Designer as it tries to force C++ syntax and that's naturally
+annoying when trying to code in Python.
+</Para>
+</Sect2>
+
+<Sect2><Title>Using Qt Linguist</Title>
+<Para>
+Qt includes the <Literal>lupdate</Literal> program which parses C++ source
+files converting calls to the <Literal>QT_TR_NOOP()</Literal> and
+<Literal>QT_TRANSLATE_NOOP()</Literal> macros to <Literal>.ts</Literal>
+language source files. The <Literal>lrelease</Literal> program is then used to
+generate <Literal>.qm</Literal> binary language files that are distributed with
+your application.
+</Para>
+
+<Para>
+Thanks to Detlev Offenbach, PyQt includes the <Literal>pylupdate</Literal>
+program. This generates the same <Literal>.ts</Literal> language source files
+from your PyQt source files.
+</Para>
+</Sect2>
+</Sect1>
+
+
+<Sect1><Title>Deploying Commercial PyQt Applications</Title>
+<Para>
+When deploying commercial PyQt applications it is necessary to discourage users
+from accessing the underlying PyQt modules for themselves. A user that used
+the modules shipped with your application to develop new applications would
+themselves be considered a developer and would need their own commercial Qt and
+PyQt licenses.
+</Para>
+
+<Para>
+One solution to this problem is the
+<ULink url="http://www.riverbankcomputing.co.uk/vendorid/">VendorID</ULink>
+package. This allows you to build Python extension modules that can only be
+imported by a digitally signed custom interpreter. The package enables you to
+create such an interpreter with your application embedded within it. The
+result is an interpreter that can only run your application, and PyQt modules
+that can only be imported by that interpreter. You can use the package to
+similarly restrict access to any extension module.
+</Para>
+
+<Para>
+In order to build PyQt with support for the VendorID package, pass the
+<Literal>-i</Literal> command line flag to <Literal>configure.py</Literal>.
+</Para>
+</Sect1>
+
+<Sect1><Title><Literal>pyqtconfig</Literal> and Build System Support</Title>
+<Para>
+The SIP build system (ie. the <Literal>sipconfig</Literal> module) is described
+in the SIP documentation. PyQt includes the <Literal>pyqtconfig</Literal>
+module that can be used by configuration scripts of other bindings that are
+built on top of PyQt.
+</Para>
+
+<Para>
+The <Literal>pyqtconfig</Literal> module contains the following classes:
+</Para>
+
+<VariableList>
+<VarListEntry>
+<Term><Literal>Configuration(sipconfig.Configuration)</Literal></Term>
+<ListItem>
+<Para>
+This class encapsulates additional configuration values, specific to PyQt, that
+can be accessed as instance variables.
+</Para>
+
+<Para>
+The following configuration values are provided (in addition to those provided
+by the <Literal>sipconfig.Configuration</Literal> class):
+</Para>
+<VariableList>
+
+<VarListEntry>
+<Term><Literal>pyqt_bin_dir</Literal></Term>
+<ListItem>
+<Para>
+The name of the directory containing the <Literal>pyuic</Literal> and
+<Literal>pylupdate</Literal> executables.
+</Para>
+<Para></Para><Para></Para>
+</ListItem>
+</VarListEntry>
+
+<VarListEntry>
+<Term><Literal>pyqt_config_args</Literal></Term>
+<ListItem>
+<Para>
+The command line passed to <Literal>configure.py</Literal> when PyQt was
+configured.
+</Para>
+<Para></Para><Para></Para>
+</ListItem>
+</VarListEntry>
+
+<VarListEntry>
+<Term><Literal>pyqt_mod_dir</Literal></Term>
+<ListItem>
+<Para>
+The name of the directory containing the PyQt modules.
+</Para>
+<Para></Para><Para></Para>
+</ListItem>
+</VarListEntry>
+
+<VarListEntry>
+<Term><Literal>pyqt_modules</Literal></Term>
+<ListItem>
+<Para>
+A string containing the names of the PyQt modules that were installed.
+</Para>
+<Para></Para><Para></Para>
+</ListItem>
+</VarListEntry>
+
+<VarListEntry>
+<Term><Literal>pyqt_qt_sip_flags</Literal></Term>
+<ListItem>
+<Para>
+A string of the SIP flags used to generate the code for the
+<Literal>qt</Literal> module and which should be added to those needed by any
+module that imports the <Literal>qt</Literal> module.
+</Para>
+<Para></Para><Para></Para>
+</ListItem>
+</VarListEntry>
+
+<VarListEntry>
+<Term><Literal>pyqt_qtaxcontainer_sip_flags</Literal></Term>
+<ListItem>
+<Para>
+A string of the SIP flags used to generate the code for the
+<Literal>qtaxcontainer</Literal> module and which should be added to those
+needed by any module that imports the <Literal>qtaxcontainer</Literal> module.
+</Para>
+<Para></Para><Para></Para>
+</ListItem>
+</VarListEntry>
+
+<VarListEntry>
+<Term><Literal>pyqt_qtcanvas_sip_flags</Literal></Term>
+<ListItem>
+<Para>
+A string of the SIP flags used to generate the code for the
+<Literal>qtcanvas</Literal> module and which should be added to those needed by
+any module that imports the <Literal>qtcanvas</Literal> module.
+</Para>
+<Para></Para><Para></Para>
+</ListItem>
+</VarListEntry>
+
+<VarListEntry>
+<Term><Literal>pyqt_qtext_sip_flags</Literal></Term>
+<ListItem>
+<Para>
+A string of the SIP flags used to generate the code for the
+<Literal>qtext</Literal> module and which should be added to those needed by
+any module that imports the <Literal>qtext</Literal> module.
+</Para>
+<Para></Para><Para></Para>
+</ListItem>
+</VarListEntry>
+
+<VarListEntry>
+<Term><Literal>pyqt_qtgl_sip_flags</Literal></Term>
+<ListItem>
+<Para>
+A string of the SIP flags used to generate the code for the
+<Literal>qtgl</Literal> module and which should be added to those needed by any
+module that imports the <Literal>qtgl</Literal> module.
+</Para>
+<Para></Para><Para></Para>
+</ListItem>
+</VarListEntry>
+
+<VarListEntry>
+<Term><Literal>pyqt_qtnetwork_sip_flags</Literal></Term>
+<ListItem>
+<Para>
+A string of the SIP flags used to generate the code for the
+<Literal>qtnetwork</Literal> module and which should be added to those needed
+by any module that imports the <Literal>qtnetwork</Literal> module.
+</Para>
+<Para></Para><Para></Para>
+</ListItem>
+</VarListEntry>
+
+<VarListEntry>
+<Term><Literal>pyqt_qtsql_sip_flags</Literal></Term>
+<ListItem>
+<Para>
+A string of the SIP flags used to generate the code for the
+<Literal>qtsql</Literal> module and which should be added to those needed by
+any module that imports the <Literal>qtsql</Literal> module.
+</Para>
+<Para></Para><Para></Para>
+</ListItem>
+</VarListEntry>
+
+<VarListEntry>
+<Term><Literal>pyqt_qttable_sip_flags</Literal></Term>
+<ListItem>
+<Para>
+A string of the SIP flags used to generate the code for the
+<Literal>qttable</Literal> module and which should be added to those needed by
+any module that imports the <Literal>qttable</Literal> module.
+</Para>
+<Para></Para><Para></Para>
+</ListItem>
+</VarListEntry>
+
+<VarListEntry>
+<Term><Literal>pyqt_qtui_sip_flags</Literal></Term>
+<ListItem>
+<Para>
+A string of the SIP flags used to generate the code for the
+<Literal>qtui</Literal> module and which should be added to those needed by any
+module that imports the <Literal>qtui</Literal> module.
+</Para>
+<Para></Para><Para></Para>
+</ListItem>
+</VarListEntry>
+
+<VarListEntry>
+<Term><Literal>pyqt_qtxml_sip_flags</Literal></Term>
+<ListItem>
+<Para>
+A string of the SIP flags used to generate the code for the
+<Literal>qtxml</Literal> module and which should be added to those needed by
+any module that imports the <Literal>qtxml</Literal> module.
+</Para>
+<Para></Para><Para></Para>
+</ListItem>
+</VarListEntry>
+
+<VarListEntry>
+<Term><Literal>pyqt_sip_dir</Literal></Term>
+<ListItem>
+<Para>
+The name of the base directory where the <Literal>.sip</Literal> files for each
+of the PyQt modules is installed. A sub-directory exists with the same name as
+the module.
+</Para>
+<Para></Para><Para></Para>
+</ListItem>
+</VarListEntry>
+
+<VarListEntry>
+<Term><Literal>pyqt_version</Literal></Term>
+<ListItem>
+<Para>
+The PyQt version as a 3 part hexadecimal number (eg. v3.10 is represented as
+<Literal>0x030a00</Literal>).
+</Para>
+<Para></Para><Para></Para>
+</ListItem>
+</VarListEntry>
+
+<VarListEntry>
+<Term><Literal>pyqt_version_str</Literal></Term>
+<ListItem>
+<Para>
+The PyQt version as a string. For development snapshots it will start with
+<Literal>snapshot-</Literal>.
+</Para>
+<Para></Para><Para></Para>
+</ListItem>
+</VarListEntry>
+
+</VariableList>
+</ListItem>
+</VarListEntry>
+
+<VarListEntry>
+<Term><Literal>QtModuleMakefile(sipconfig.SIPModuleMakefile)</Literal></Term>
+<ListItem>
+<Para>
+The Makefile class for modules that import the <Literal>qt</Literal> module.
+</Para>
+<VariableList>
+<VarListEntry>
+<Term><Literal>finalise(self)</Literal></Term>
+<ListItem>
+<Para>
+This is a reimplementation of <Literal>sipconfig.Makefile.finalise()</Literal>.
+</Para>
+<Para></Para><Para></Para>
+</ListItem>
+</VarListEntry>
+</VariableList>
+</ListItem>
+</VarListEntry>
+
+<VarListEntry>
+<Term><Literal>QtAxContainerModuleMakefile(QtModuleMakefile)</Literal></Term>
+<ListItem>
+<Para>
+The Makefile class for modules that import the <Literal>qtaxcontainer</Literal>
+module.
+</Para>
+<VariableList>
+<VarListEntry>
+<Term><Literal>finalise(self)</Literal></Term>
+<ListItem>
+<Para>
+This is a reimplementation of <Literal>sipconfig.Makefile.finalise()</Literal>.
+</Para>
+<Para></Para><Para></Para>
+</ListItem>
+</VarListEntry>
+</VariableList>
+</ListItem>
+</VarListEntry>
+
+<VarListEntry>
+<Term><Literal>QtCanvasModuleMakefile(QtModuleMakefile)</Literal></Term>
+<ListItem>
+<Para>
+The Makefile class for modules that import the <Literal>qtcanvas</Literal>
+module.
+</Para>
+<VariableList>
+<VarListEntry>
+<Term><Literal>finalise(self)</Literal></Term>
+<ListItem>
+<Para>
+This is a reimplementation of <Literal>sipconfig.Makefile.finalise()</Literal>.
+</Para>
+<Para></Para><Para></Para>
+</ListItem>
+</VarListEntry>
+</VariableList>
+</ListItem>
+</VarListEntry>
+
+<VarListEntry>
+<Term><Literal>QtExtModuleMakefile(QtModuleMakefile)</Literal></Term>
+<ListItem>
+<Para>
+The Makefile class for modules that import the <Literal>qtext</Literal> module.
+</Para>
+<VariableList>
+<VarListEntry>
+<Term><Literal>finalise(self)</Literal></Term>
+<ListItem>
+<Para>
+This is a reimplementation of <Literal>sipconfig.Makefile.finalise()</Literal>.
+</Para>
+<Para></Para><Para></Para>
+</ListItem>
+</VarListEntry>
+</VariableList>
+</ListItem>
+</VarListEntry>
+
+<VarListEntry>
+<Term><Literal>QtGLModuleMakefile(QtModuleMakefile)</Literal></Term>
+<ListItem>
+<Para>
+The Makefile class for modules that import the <Literal>qtgl</Literal> module.
+</Para>
+<VariableList>
+<VarListEntry>
+<Term><Literal>finalise(self)</Literal></Term>
+<ListItem>
+<Para>
+This is a reimplementation of <Literal>sipconfig.Makefile.finalise()</Literal>.
+</Para>
+<Para></Para><Para></Para>
+</ListItem>
+</VarListEntry>
+</VariableList>
+</ListItem>
+</VarListEntry>
+
+<VarListEntry>
+<Term><Literal>QtNetworkModuleMakefile(QtModuleMakefile)</Literal></Term>
+<ListItem>
+<Para>
+The Makefile class for modules that import the <Literal>qtnetwork</Literal>
+module.
+</Para>
+<VariableList>
+<VarListEntry>
+<Term><Literal>finalise(self)</Literal></Term>
+<ListItem>
+<Para>
+This is a reimplementation of <Literal>sipconfig.Makefile.finalise()</Literal>.
+</Para>
+<Para></Para><Para></Para>
+</ListItem>
+</VarListEntry>
+</VariableList>
+</ListItem>
+</VarListEntry>
+
+<VarListEntry>
+<Term><Literal>QtTableModuleMakefile(QtModuleMakefile)</Literal></Term>
+<ListItem>
+<Para>
+The Makefile class for modules that import the <Literal>qttable</Literal>
+module.
+</Para>
+<VariableList>
+<VarListEntry>
+<Term><Literal>finalise(self)</Literal></Term>
+<ListItem>
+<Para>
+This is a reimplementation of <Literal>sipconfig.Makefile.finalise()</Literal>.
+</Para>
+<Para></Para><Para></Para>
+</ListItem>
+</VarListEntry>
+</VariableList>
+</ListItem>
+</VarListEntry>
+
+<VarListEntry>
+<Term><Literal>QtSQLModuleMakefile(QtTableModuleMakefile)</Literal></Term>
+<ListItem>
+<Para>
+The Makefile class for modules that import the <Literal>qtsql</Literal> module.
+</Para>
+<VariableList>
+<VarListEntry>
+<Term><Literal>finalise(self)</Literal></Term>
+<ListItem>
+<Para>
+This is a reimplementation of <Literal>sipconfig.Makefile.finalise()</Literal>.
+</Para>
+<Para></Para><Para></Para>
+</ListItem>
+</VarListEntry>
+</VariableList>
+</ListItem>
+</VarListEntry>
+
+<VarListEntry>
+<Term><Literal>QtUIModuleMakefile(QtModuleMakefile)</Literal></Term>
+<ListItem>
+<Para>
+The Makefile class for modules that import the <Literal>qtui</Literal> module.
+</Para>
+<VariableList>
+<VarListEntry>
+<Term><Literal>finalise(self)</Literal></Term>
+<ListItem>
+<Para>
+This is a reimplementation of <Literal>sipconfig.Makefile.finalise()</Literal>.
+</Para>
+<Para></Para><Para></Para>
+</ListItem>
+</VarListEntry>
+</VariableList>
+</ListItem>
+</VarListEntry>
+
+<VarListEntry>
+<Term><Literal>QtXMLModuleMakefile(QtModuleMakefile)</Literal></Term>
+<ListItem>
+<Para>
+The Makefile class for modules that import the <Literal>qtxml</Literal> module.
+</Para>
+<VariableList>
+<VarListEntry>
+<Term><Literal>finalise(self)</Literal></Term>
+<ListItem>
+<Para>
+This is a reimplementation of <Literal>sipconfig.Makefile.finalise()</Literal>.
+</Para>
+<Para></Para><Para></Para>
+</ListItem>
+</VarListEntry>
+</VariableList>
+</ListItem>
+</VarListEntry>
+
+</VariableList>
+</Sect1>
+%End
+
+
+%ExportedDoc
+<Sect1><Title>Things to be Aware Of</Title>
+<Sect2><Title>super and Wrapped Classes</Title>
+<Para>
+Internally PyQt implements a lazy technique for attribute lookup where
+attributes are only placed in type and instance dictionaries when they are
+first referenced. This technique is needed to reduce the time taken to import
+large modules such as PyQt.
+</Para>
+
+<Para>
+In most circumstances this technique is transparent to an application. The
+exception is when <Literal>super</Literal> is used with a PyQt class. The way
+that <Literal>super</Literal> is currently implemented means that the lazy
+lookup is bypassed resulting in <Literal>AttributeError</Literal> exceptions
+unless the attribute has been previously referenced.
+</Para>
+
+<Para>
+Note that this restriction applies to any class wrapped by SIP and not just
+PyQt.
+</Para>
+</Sect2>
+
+
+<Sect2><Title>Python Strings, Qt Strings and Unicode</Title>
+<Para>
+Unicode support was added to Qt in v2.0 and to Python in v1.6. In Qt, Unicode
+support is implemented using the <Literal>QString</Literal> class. It is
+important to understand that <Literal>QString</Literal>s, Python string objects
+and Python Unicode objects are all different but conversions between them are
+automatic in almost all cases and easy to achieve manually when needed.
+</Para>
+
+<Para>
+Whenever PyQt expects a <Literal>QString</Literal> as a function argument, a
+Python string object or a Python Unicode object can be provided instead, and
+PyQt will do the necessary conversion automatically.
+</Para>
+
+<Para>
+You may also manually convert Python string and Unicode objects to
+<Literal>QString</Literal>s by using the <Literal>QString</Literal> constructor
+as demonstrated in the following code fragment.
+</Para>
+
+<ProgramListing>
+qs1 = QString('Converted Python string object')
+qs2 = QString(u'Converted Python Unicode object')
+</ProgramListing>
+
+<Para>
+In order to convert a <Literal>QString</Literal> to a Python string object use
+the Python <Literal>str()</Literal> function. Applying
+<Literal>str()</Literal> to a null <Literal>QString</Literal> and an empty
+<Literal>QString</Literal> both result in an empty Python string object.
+</Para>
+
+<Para>
+In order to convert a <Literal>QString</Literal> to a Python Unicode object use
+the Python <Literal>unicode()</Literal> function. Applying
+<Literal>unicode()</Literal> to a null <Literal>QString</Literal> and an empty
+<Literal>QString</Literal> both result in an empty Python Unicode object.
+</Para>
+</Sect2>
+
+<Sect2><Title>Access to Protected Member Functions</Title>
+<Para>
+When an instance of a C++ class is not created from Python it is not possible
+to access the protected member functions, or emit the signals, of that
+instance. Attempts to do so will raise a Python exception. Also, any Python
+methods corresponding to the instance's virtual member functions will never be
+called.
+</Para>
+</Sect2>
+
+<Sect2><Title><Literal>None</Literal> and <Literal>NULL</Literal></Title>
+<Para>
+Throughout the bindings, the <Literal>None</Literal> value can be specified
+wherever <Literal>NULL</Literal> is acceptable to the underlying C++ code.
+</Para>
+
+<Para>
+Equally, <Literal>NULL</Literal> is converted to <Literal>None</Literal>
+whenever it is returned by the underlying C++ code.
+</Para>
+</Sect2>
+
+
+<Sect2><Title>Support for C++ <Literal>void *</Literal> Data Types</Title>
+<Para>
+PyQt represents <Literal>void *</Literal> values as objects of type
+<Literal>sip.voidptr</Literal>. Such values are often used to pass the
+addresses of external objects between different Python modules. To make this
+easier, a Python integer (or anything that Python can convert to an integer)
+can be used whenever a <Literal>sip.voidptr</Literal> is expected.
+</Para>
+<Para>
+A <Literal>sip.voidptr</Literal> may be converted to a Python integer by using
+the <Literal>int()</Literal> builtin function.
+</Para>
+<Para>
+A <Literal>sip.voidptr</Literal> may be converted to a Python string by using
+its <Literal>asstring()</Literal> method. The <Literal>asstring()</Literal>
+method takes an integer argument which is the length of the data in bytes.
+</Para>
+</Sect2>
+
+
+<Sect2><Title>Support for Threads</Title>
+<Para>
+PyQt implements the full set of Qt's thread classes. Python, of course, also
+has its own thread extension modules. If you are using SIP v4 (or later) and
+Python v2.3.5 (or later) then PyQt does not impose any additional restrictions.
+(Read the relevant part of the Qt documentation to understand the restrictions
+imposed by the Qt API.)
+</Para>
+<Para>
+If you are using earlier versions of either SIP or Python then it is possible
+to use either of the APIs so long as you follow some simple rules.
+</Para>
+<ItemizedList>
+<ListItem>
+<Para>
+If you use the Qt API then the very first <Literal>import</Literal> of one of
+the PyQt modules must be done from the main thread.
+</Para>
+</ListItem>
+<ListItem>
+<Para>
+If you use the Python API then all calls to PyQt (including any
+<Literal>import</Literal>s) must be done from one thread only. Therefore, if
+you want to make calls to PyQt from several threads then you must use the Qt
+API.
+</Para>
+</ListItem>
+<ListItem>
+<Para>
+If you want to use both APIs in the same application then all calls to PyQt
+must be done from threads created using the Qt API.
+</Para>
+</ListItem>
+</ItemizedList>
+<Para>
+The above comments actually apply to any SIP generated module, not just PyQt.
+</Para>
+</Sect2>
+
+<Sect2><Title>Garbage Collection</Title>
+<Para>
+C++ does not garbage collect unreferenced class instances, whereas Python does.
+In the following C++ fragment both colours exist even though the first can no
+longer be referenced from within the program:
+</Para>
+
+<ProgramListing>
+c = new QColor();
+c = new QColor();
+</ProgramListing>
+
+<Para>
+In the corresponding Python fragment, the first colour is destroyed when
+the second is assigned to <Literal>c</Literal>:
+</Para>
+
+<ProgramListing>
+c = QColor()
+c = QColor()
+</ProgramListing>
+
+<Para>
+In Python, each colour must be assigned to different names. Typically this
+is done within class definitions, so the code fragment would be something like:
+</Para>
+
+<ProgramListing>
+self.c1 = QColor()
+self.c2 = QColor()
+</ProgramListing>
+
+<Para>
+Sometimes a Qt class instance will maintain a pointer to another instance and
+will eventually call the destructor of that second instance. The most common
+example is that a <Literal>QObject</Literal> (and any of its sub-classes) keeps
+pointers to its children and will automatically call their destructors. In
+these cases, the corresponding Python object will also keep a reference to the
+corresponding child objects.
+</Para>
+
+<Para>
+So, in the following Python fragment, the first <Literal>QLabel</Literal> is
+not destroyed when the second is assigned to <Literal>l</Literal> because the
+parent <Literal>QWidget</Literal> still has a reference to it.
+</Para>
+
+<ProgramListing>
+p = QWidget()
+l = QLabel('First label',p)
+l = QLabel('Second label',p)
+</ProgramListing>
+</Sect2>
+
+<Sect2><Title>C++ Variables</Title>
+<Para>
+Access to C++ variables is supported. They are accessed as Python instance
+variables. For example:
+</Para>
+
+<ProgramListing>
+tab = QTab()
+tab.label = "First Tab"
+tab.r = QRect(10,10,75,30)
+</ProgramListing>
+
+<Para>
+Global variables and static class variables are effectively read-only. They
+can be assigned to, but the underlying C++ variable will not be changed. This
+may change in the future.
+</Para>
+
+<Para>
+Access to protected C++ class variables is not supported. This may change in
+the future.
+</Para>
+</Sect2>
+
+<Sect2><Title>Multiple Inheritance</Title>
+<Para>
+It is not possible to define a new Python class that sub-classes from more than
+one Qt class.
+</Para>
+</Sect2>
+
+<Sect2><Title>i18n Support</Title>
+<Para>
+Qt implements i18n support through the Qt Linguist application, the
+<Literal>QTranslator</Literal> class, and the
+<Literal>QApplication::translate()</Literal>, <Literal>QObject::tr()</Literal>
+and <Literal>QObject::trUtf8()</Literal> methods. Usually the
+<Literal>tr()</Literal> method is used to obtain the correct translation of a
+message. The translation process uses a message context to allow the same
+message to be translated differently. <Literal>tr()</Literal> is actually
+generated by <Literal>moc</Literal> and uses the hardcoded class name as the
+context. On the other hand, <Literal>QApplication::translate()</Literal>
+allows to context to be explicitly stated.
+</Para>
+
+<Para>
+Unfortunately, because of the way Qt implents <Literal>tr()</Literal> (and
+<Literal>trUtf8()</Literal>) it is not possible for PyQt to exactly reproduce
+its behavour. The PyQt implementation of <Literal>tr()</Literal> (and
+<Literal>trUtf8()</Literal>) uses the class name of the instance as the
+context. The key difference, and the source of potential problems, is that the
+context is determined dynamically in PyQt, but is hardcoded in Qt. In other
+words, the context of a translation may change depending on an instance's class
+hierarchy.
+</Para>
+
+<ProgramListing>
+class A(QObject):
+ def __init__(self):
+ QObject.__init__(self)
+
+ def hello(self):
+ return self.tr("Hello")
+
+class B(A):
+ def __init__(self):
+ A.__init__(self)
+
+a = A()
+a.hello()
+
+b = B()
+b.hello()
+</ProgramListing>
+
+<Para>
+In the above the message is translated by <Literal>a.hello()</Literal> using a
+context of <Literal>A</Literal>, and by <Literal>b.hello()</Literal> using a
+context of <Literal>B</Literal>. In the equivalent C++ version the context
+would be <Literal>A</Literal> in both cases.
+</Para>
+
+<Para>
+The PyQt behaviour is unsatisfactory and may be changed in the future. It is
+recommended that <Literal>QApplication.translate()</Literal> be used in
+preference to <Literal>tr()</Literal> (and <Literal>trUtf8()</Literal>). This
+is guaranteed to work with current and future versions of PyQt and makes it
+much easier to share message files between Python and C++ code. Below is the
+alternative implementation of <Literal>A</Literal> that uses
+<Literal>QApplication.translate()</Literal>.
+</Para>
+
+<ProgramListing>
+class A(QObject):
+ def __init__(self):
+ QObject.__init__(self)
+
+ def hello(self):
+ return qApp.translate("A","Hello")
+</ProgramListing>
+
+<Para>
+Note that the code generated by <Literal>pyuic</Literal> uses
+<Literal>QApplication.translate()</Literal>.
+</Para>
+</Sect2>
+</Sect1>
+
+
+<Sect1><Title>Signal and Slot Support</Title>
+<Para>
+A signal may be either a Qt signal (specified using
+<Literal>SIGNAL()</Literal>) or a Python signal (specified using
+<Literal>PYSIGNAL()</Literal>).
+</Para>
+
+<Para>
+A slot can be either a Python callable object, a Qt signal (specified using
+<Literal>SIGNAL()</Literal>), a Python signal (specified using
+<Literal>PYSIGNAL()</Literal>), or a Qt slot (specified using
+<Literal>SLOT()</Literal>).
+</Para>
+
+<Para>
+You connect signals to slots (and other signals) as you would from C++. For
+example:
+</Para>
+
+<ProgramListing>
+QObject.connect(a,SIGNAL("QtSig()"),pyFunction)
+QObject.connect(a,SIGNAL("QtSig()"),pyClass.pyMethod)
+QObject.connect(a,SIGNAL("QtSig()"),PYSIGNAL("PySig"))
+QObject.connect(a,SIGNAL("QtSig()"),SLOT("QtSlot()"))
+QObject.connect(a,PYSIGNAL("PySig"),pyFunction)
+QObject.connect(a,PYSIGNAL("PySig"),pyClass.pyMethod)
+QObject.connect(a,PYSIGNAL("PySig"),SIGNAL("QtSig()"))
+QObject.connect(a,PYSIGNAL("PySig"),SLOT("QtSlot()"))
+</ProgramListing>
+
+<Para>
+When a slot is a Python method that corresponds to a Qt slot then a signal can
+be connected to either the Python method or the Qt slot. The following
+connections achieve the same effect.
+</Para>
+
+<ProgramListing>
+sbar = QScrollBar()
+lcd = QLCDNumber()
+
+QObject.connect(sbar,SIGNAL("valueChanged(int)"),lcd.display)
+QObject.connect(sbar,SIGNAL("valueChanged(int)"),lcd,SLOT("display(int)"))
+</ProgramListing>
+
+<Para>
+The difference is that the second connection is made at the C++ level and is
+more efficient.
+</Para>
+
+<Para>
+Disconnecting signals works in exactly the same way.
+</Para>
+
+<Para>
+Any instance of a class that is derived from the <Literal>QObject</Literal>
+class can emit a signal using the <Literal>emit</Literal> method. This takes
+two arguments. The first is the Python or Qt signal, the second is a Python
+tuple which are the arguments to the signal. For example:
+</Para>
+
+<ProgramListing>
+a.emit(SIGNAL("clicked()"),())
+a.emit(PYSIGNAL("pySig"),("Hello","World"))
+</ProgramListing>
+
+<Para>
+Note that when a slot is a Python callable object its reference count is not
+increased. This means that a class instance can be deleted without having to
+explicitly disconnect any signals connected to its methods. However, it also
+means that using lambda expressions as slots will not work unless you keep a
+separate reference to the expression to prevent it from being immediately
+garbage collected.
+</Para>
+
+<Para>
+Qt allows a signal to be connected to a slot that requires fewer arguments than
+the signal passes. The extra arguments are quietly discarded. Python slots
+can be used in the same way.
+</Para>
+</Sect1>
+
+
+<Sect1><Title>Static Member Functions</Title>
+<Para>
+Static member functions are implemented as Python class functions.
+For example the C++ static member function
+<Literal>QObject::connect()</Literal> is called from Python as
+<Literal>QObject.connect()</Literal> or <Literal>self.connect()</Literal> if
+called from a sub-class of <Literal>QObject</Literal>.
+</Para>
+</Sect1>
+
+
+<Sect1><Title>Enumerated Types</Title>
+<Para>
+Enumerated types are implemented as a set of simple variables corresponding to
+the separate enumerated values.
+</Para>
+
+<Para>
+When using an enumerated value the name of the class (or a sub-class) in which
+the enumerated type was defined in must be included. For example:
+</Para>
+
+<ProgramListing>
+Qt.SolidPattern
+QWidget.TabFocus
+QFrame.TabFocus
+</ProgramListing>
+</Sect1>
+
+
+<Sect1><Title>Module Reference Documentation</Title>
+<Para>
+The following sections should be used in conjunction with the normal class
+documentation - only the differences specific to the Python bindings are
+documented here.
+</Para>
+
+<Para>
+In these sections, <Emphasis>Not yet implemented</Emphasis>
+implies that the feature can be easily implemented if needed. <Emphasis>Not
+implemented</Emphasis> implies that the feature will not be implemented, either
+because it cannot be or because it is not appropriate.
+</Para>
+
+<Para>
+If a class is described as being <Emphasis>fully implemented</Emphasis> then
+all non-private member functions and all public class variables have been
+implemented.
+</Para>
+
+<Para>
+If an operator has been implemented then it is stated explicitly.
+</Para>
+
+<Para>
+Classes that are not mentioned have not yet been implemented.
+</Para>
+</Sect1>
+
+
+<Sect1><Title><Literal>qt</Literal> Module Reference</Title>
+%End
+
+%Include qt/qglobal.sip
+%Include qt/qwindowdefs.sip
+%Include qt/qnamespace.sip
+
+%Include qt/qaccel.sip
+%Include qt/qaction.sip
+%Include qt/qapplication.sip
+%Include qt/qassistantclient.sip
+%Include qt/qbitmap.sip
+%Include qt/qbrush.sip
+%Include qt/qbutton.sip
+%Include qt/qbuttongroup.sip
+%Include qt/qbytearray.sip
+%Include qt/qcdestyle.sip
+%Include qt/qcheckbox.sip
+%Include qt/qclipboard.sip
+%Include qt/qcolor.sip
+%Include qt/qcolordialog.sip
+%Include qt/qcolorgroup.sip
+%Include qt/qcombobox.sip
+%Include qt/qcommonstyle.sip
+%Include qt/qcstring.sip
+%Include qt/qcursor.sip
+%Include qt/qdatastream.sip
+%Include qt/qdatetime.sip
+%Include qt/qdatetimeedit.sip
+%Include qt/qdesktopwidget.sip
+%Include qt/qdial.sip
+%Include qt/qdialog.sip
+%Include qt/qdir.sip
+%Include qt/qdockarea.sip
+%Include qt/qdockwindow.sip
+%Include qt/qdragobject.sip
+%Include qt/qdrawutil.sip
+%Include qt/qdropsite.sip
+%Include qt/qerrormessage.sip
+%Include qt/qevent.sip
+%Include qt/qeventloop.sip
+%Include qt/qfile.sip
+%Include qt/qfiledialog.sip
+%Include qt/qfileinfo.sip
+%Include qt/qfont.sip
+%Include qt/qfontdatabase.sip
+%Include qt/qfontdialog.sip
+%Include qt/qfontinfo.sip
+%Include qt/qfontmetrics.sip
+%Include qt/qframe.sip
+%Include qt/qgmanager.sip
+%Include qt/qgrid.sip
+%Include qt/qgridview.sip
+%Include qt/qgroupbox.sip
+%Include qt/qhbox.sip
+%Include qt/qhbuttongroup.sip
+%Include qt/qheader.sip
+%Include qt/qhgroupbox.sip
+%Include qt/qiconset.sip
+%Include qt/qiconview.sip
+%Include qt/qimage.sip
+%Include qt/qinputdialog.sip
+%Include qt/qinterlacestyle.sip
+%Include qt/qiodevice.sip
+%Include qt/qkeycode.sip
+%Include qt/qkeysequence.sip
+%Include qt/qlabel.sip
+%Include qt/qlayout.sip
+%Include qt/qlcdnumber.sip
+%Include qt/qlibrary.sip
+%Include qt/qlineedit.sip
+%Include qt/qlist.sip
+%Include qt/qlistbox.sip
+%Include qt/qlistview.sip
+%Include qt/qlocale.sip
+%Include qt/qmainwindow.sip
+%Include qt/qmemarray.sip
+%Include qt/qmenubar.sip
+%Include qt/qmenudata.sip
+%Include qt/qmessagebox.sip
+%Include qt/qmetaobject.sip
+%Include qt/qmime.sip
+%Include qt/qmotifplusstyle.sip
+%Include qt/qmotifstyle.sip
+%Include qt/qmovie.sip
+%Include qt/qmultilinedit.sip
+%Include qt/qmutex.sip
+%Include qt/qnetworkprotocol.sip
+%Include qt/qobject.sip
+%Include qt/qobjectcleanuphandler.sip
+%Include qt/qobjectlist.sip
+%Include qt/qpaintdevicemetrics.sip
+%Include qt/qpaintdevice.sip
+%Include qt/qpainter.sip
+%Include qt/qpalette.sip
+%Include qt/qpixmap.sip
+%Include qt/qpixmapcache.sip
+%Include qt/qpair.sip
+%Include qt/qpen.sip
+%Include qt/qpicture.sip
+%Include qt/qplatinumstyle.sip
+%Include qt/qpoint.sip
+%Include qt/qpointarray.sip
+%Include qt/qpopupmenu.sip
+%Include qt/qprintdialog.sip
+%Include qt/qprinter.sip
+%Include qt/qprocess.sip
+%Include qt/qprogressbar.sip
+%Include qt/qprogressdialog.sip
+%Include qt/qptrlist.sip
+%Include qt/qpushbutton.sip
+%Include qt/qradiobutton.sip
+%Include qt/qrangecontrol.sip
+%Include qt/qrect.sip
+%Include qt/qregexp.sip
+%Include qt/qregion.sip
+%Include qt/qscrollbar.sip
+%Include qt/qscrollview.sip
+%Include qt/qsemaphore.sip
+%Include qt/qsemimodal.sip
+%Include qt/qsessionmanager.sip
+%Include qt/qsettings.sip
+%Include qt/qsgistyle.sip
+%Include qt/qsignalmapper.sip
+%Include qt/qsimplerichtext.sip
+%Include qt/qsize.sip
+%Include qt/qsizegrip.sip
+%Include qt/qsizepolicy.sip
+%Include qt/qslider.sip
+%Include qt/qsocketnotifier.sip
+%Include qt/qsound.sip
+%Include qt/qspinbox.sip
+%Include qt/qsplashscreen.sip
+%Include qt/qsplitter.sip
+%Include qt/qstatusbar.sip
+%Include qt/qstring.sip
+%Include qt/qstringlist.sip
+%Include qt/qstrlist.sip
+%Include qt/qstyle.sip
+%Include qt/qstylesheet.sip
+%Include qt/qsyntaxhighlighter.sip
+%Include qt/qtabbar.sip
+%Include qt/qtabdialog.sip
+%Include qt/qtableview.sip
+%Include qt/qtabwidget.sip
+%Include qt/qtextbrowser.sip
+%Include qt/qtextcodec.sip
+%Include qt/qtextedit.sip
+%Include qt/qtextstream.sip
+%Include qt/qtextview.sip
+%Include qt/qthread.sip
+%Include qt/qtimer.sip
+%Include qt/qtoolbar.sip
+%Include qt/qtoolbox.sip
+%Include qt/qtoolbutton.sip
+%Include qt/qtooltip.sip
+%Include qt/qtranslator.sip
+%Include qt/qurl.sip
+%Include qt/qurlinfo.sip
+%Include qt/qurloperator.sip
+%Include qt/quuid.sip
+%Include qt/qvalidator.sip
+%Include qt/qvaluelist.sip
+%Include qt/qvariant.sip
+%Include qt/qvbox.sip
+%Include qt/qvbuttongroup.sip
+%Include qt/qvgroupbox.sip
+%Include qt/qwaitcondition.sip
+%Include qt/qwhatsthis.sip
+%Include qt/qwidget.sip
+%Include qt/qwidgetlist.sip
+%Include qt/qwidgetstack.sip
+%Include qt/qwindow.sip
+%Include qt/qwindowsstyle.sip
+%Include qt/qwindowsxpstyle.sip
+%Include qt/qwizard.sip
+%Include qt/qwmatrix.sip
+%Include qt/qworkspace.sip
+
+%ExportedDoc
+</Sect1>
+%End
+
+
+%ExportedDoc
+<Sect1><Title><Literal>qtaxcontainer</Literal> Module Reference</Title>
+%End
+
+%Include qtaxcontainer/qaxbase.sip
+%Include qtaxcontainer/qaxobject.sip
+%Include qtaxcontainer/qaxwidget.sip
+
+%ExportedDoc
+</Sect1>
+%End
+
+
+%ExportedDoc
+<Sect1><Title><Literal>qtcanvas</Literal> Module Reference</Title>
+%End
+
+%Include qtcanvas/qcanvas.sip
+
+%ExportedDoc
+</Sect1>
+%End
+
+
+%ExportedDoc
+<Sect1><Title><Literal>qtext</Literal> Module Reference</Title>
+
+<Sect2><Title>QextScintilla</Title>
+<FuncSynopsis>
+ <FuncDef>void <Function>getCursorPosition</Function></FuncDef>
+ <ParamDef>int *<Parameter>line</Parameter></ParamDef>
+ <ParamDef>int *<Parameter>index</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+This takes no parameters and returns a tuple of the values returned by the
+<Literal>line</Literal> and <Literal>index</Literal> pointers.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>void <Function>getSelection</Function></FuncDef>
+ <ParamDef>int *<Parameter>lineFrom</Parameter></ParamDef>
+ <ParamDef>int *<Parameter>indexFrom</Parameter></ParamDef>
+ <ParamDef>int *<Parameter>lineTo</Parameter></ParamDef>
+ <ParamDef>int *<Parameter>indexTo</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+This takes no parameters and returns a tuple of the values returned by the
+<Literal>lineFrom</Literal>, <Literal>indexFrom</Literal>,
+<Literal>lineTo</Literal> and <Literal>indexTo</Literal> pointers.
+</Para>
+</Sect2>
+
+<Sect2><Title>QextScintillaAPIs</Title>
+<Para>
+<Literal>QextScintillaAPIs</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QextScintillaBase</Title>
+<Para>
+<Literal>QextScintillaBase</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QextScintillaCommand</Title>
+<Para>
+<Literal>QextScintillaCommand</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QextScintillaCommandSet</Title>
+<Para>
+<Literal>QextScintillaCommandSet</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QextScintillaDocument</Title>
+<Para>
+<Literal>QextScintillaDocument</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QextScintillaLexer</Title>
+<Para>
+<Literal>QextScintillaLexer</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QextScintillaLexerBash (QScintilla v1.4+)</Title>
+<Para>
+<Literal>QextScintillaLexerBash</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QextScintillaLexerBatch (QScintilla v1.6+)</Title>
+<Para>
+<Literal>QextScintillaLexerBatch</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QextScintillaLexerCPP</Title>
+<Para>
+<Literal>QextScintillaLexerCPP</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QextScintillaLexerCSharp</Title>
+<Para>
+<Literal>QextScintillaLexerCSharp</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QextScintillaLexerCSS (QScintilla v1.6+)</Title>
+<Para>
+<Literal>QextScintillaLexerCSS</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QextScintillaLexerDiff (QScintilla v1.6+)</Title>
+<Para>
+<Literal>QextScintillaLexerDiff</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QextScintillaLexerHTML (QScintilla v1.1+)</Title>
+<Para>
+<Literal>QextScintillaLexerHTML</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QextScintillaLexerIDL</Title>
+<Para>
+<Literal>QextScintillaLexerIDL</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QextScintillaLexerJava</Title>
+<Para>
+<Literal>QextScintillaLexerJava</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QextScintillaLexerJavaScript</Title>
+<Para>
+<Literal>QextScintillaLexerJavaScript</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QextScintillaLexerLua (QScintilla v1.5+)</Title>
+<Para>
+<Literal>QextScintillaLexerLua</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QextScintillaLexerMakefile (QScintilla v1.6+)</Title>
+<Para>
+<Literal>QextScintillaLexerMakefile</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QextScintillaLexerPerl</Title>
+<Para>
+<Literal>QextScintillaLexerPerl</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QextScintillaLexerPOV (QScintilla v1.6+)</Title>
+<Para>
+<Literal>QextScintillaLexerPOV</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QextScintillaLexerProperties (QScintilla v1.6+)</Title>
+<Para>
+<Literal>QextScintillaLexerProperties</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QextScintillaLexerPython</Title>
+<Para>
+<Literal>QextScintillaLexerPython</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QextScintillaLexerRuby (QScintilla v1.5+)</Title>
+<Para>
+<Literal>QextScintillaLexerRuby</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QextScintillaLexerSQL (QScintilla v1.1+)</Title>
+<Para>
+<Literal>QextScintillaLexerSQL</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QextScintillaLexerTeX (QScintilla v1.6+)</Title>
+<Para>
+<Literal>QextScintillaLexerTeX</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QextScintillaMacro</Title>
+<Para>
+<Literal>QextScintillaMacro</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QextScintillaPrinter</Title>
+<Para>
+<Literal>QextScintillaPrinter</Literal> is fully implemented.
+</Para>
+</Sect2>
+%End
+
+
+%ExportedDoc
+</Sect1>
+%End
+
+
+%ExportedDoc
+<Sect1><Title><Literal>qtgl</Literal> Module Reference</Title>
+%End
+
+%Include qtgl/qgl.sip
+%Include qtgl/qglcolormap.sip
+
+%ExportedDoc
+</Sect1>
+%End
+
+
+%ExportedDoc
+<Sect1><Title><Literal>qtnetwork</Literal> Module Reference</Title>
+%End
+
+%Include qtnetwork/qdns.sip
+%Include qtnetwork/qftp.sip
+%Include qtnetwork/qhostaddress.sip
+%Include qtnetwork/qhttp.sip
+%Include qtnetwork/qlocalfs.sip
+%Include qtnetwork/qnetwork.sip
+%Include qtnetwork/qserversocket.sip
+%Include qtnetwork/qsocket.sip
+%Include qtnetwork/qsocketdevice.sip
+
+%ExportedDoc
+</Sect1>
+%End
+
+
+%ExportedDoc
+<Sect1><Title><Literal>qtpe</Literal> Module Reference</Title>
+
+<Sect2><Title>QPEApplication</Title>
+<FuncSynopsis>
+ <FuncDef><Function>QApplication</Function></FuncDef>
+ <ParamDef>int& <Parameter>argc</Parameter></ParamDef>
+ <ParamDef>char **<Parameter>argv</Parameter></ParamDef>
+ <ParamDef>Type <Parameter>type</Parameter></ParamDef>
+</FuncSynopsis>
+<Para>
+This takes two parameters, the first of which is a list of argument strings.
+Arguments used by Qt are removed from the list.
+</Para>
+
+<FuncSynopsis>
+ <FuncDef>int <Function>exec</Function></FuncDef>
+ <ParamDef></ParamDef>
+</FuncSynopsis>
+<Para>
+This has been renamed to <Literal>exec_loop</Literal> in Python.
+</Para>
+</Sect2>
+
+<Sect2><Title>AppLnk</Title>
+<FuncSynopsis>
+ <FuncDef>virtual QString <Function>exec</Function> const</FuncDef>
+ <ParamDef></ParamDef>
+</FuncSynopsis>
+<Para>
+This has been renamed to <Literal>exec_property</Literal> in Python.
+</Para>
+</Sect2>
+
+<Sect2><Title>AppLnkSet</Title>
+<Para>
+<Literal>AppLnkSet</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>Config</Title>
+<Para>
+<Literal>Config</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>DateFormat</Title>
+<Para>
+<Literal>DateFormat</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>DocLnk</Title>
+<FuncSynopsis>
+ <FuncDef>QString <Function>exec</Function> const</FuncDef>
+ <ParamDef></ParamDef>
+</FuncSynopsis>
+<Para>
+This has been renamed to <Literal>exec_property</Literal> in Python.
+</Para>
+</Sect2>
+
+<Sect2><Title>DocLnkSet</Title>
+<Para>
+<Literal>DocLnkSet</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>FileManager</Title>
+<Para>
+<Literal>FileManager</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>FileSelector</Title>
+<Para>
+<Literal>FileSelector</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>FileSelectorItem</Title>
+<Para>
+<Literal>FileSelectorItem</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>FontDatabase</Title>
+<Para>
+<Literal>FontDatabase</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>Global</Title>
+<FuncSynopsis>
+ <FuncDef>static void <Function>setBuiltinCommands</Function></FuncDef>
+ <ParamDef>Command *</ParamDef>
+</FuncSynopsis>
+<Para>
+Not implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>MenuButton</Title>
+<Para>
+<Literal>MenuButton</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QCopEnvelope</Title>
+<Para>
+<Literal>QCopEnvelope</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QDawg</Title>
+<Para>
+<Literal>QDawg</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QPEMenuBar</Title>
+<Para>
+<Literal>QPEMenuBar</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>QPEToolBar</Title>
+<Para>
+<Literal>QPEToolBar</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+<Sect2><Title>Resource</Title>
+<Para>
+<Literal>Resource</Literal> is fully implemented.
+</Para>
+</Sect2>
+
+</Sect1>
+%End
+
+
+%ExportedDoc
+<Sect1><Title><Literal>qtsql</Literal> Module Reference</Title>
+%End
+
+%Include qtsql/qdatabrowser.sip
+%Include qtsql/qdatatable.sip
+%Include qtsql/qdataview.sip
+%Include qtsql/qeditorfactory.sip
+%Include qtsql/qsql.sip
+%Include qtsql/qsqlcursor.sip
+%Include qtsql/qsqldatabase.sip
+%Include qtsql/qsqldriver.sip
+%Include qtsql/qsqleditorfactory.sip
+%Include qtsql/qsqlerror.sip
+%Include qtsql/qsqlfield.sip
+%Include qtsql/qsqlform.sip
+%Include qtsql/qsqlindex.sip
+%Include qtsql/qsqlpropertymap.sip
+%Include qtsql/qsqlquery.sip
+%Include qtsql/qsqlrecord.sip
+%Include qtsql/qsqlresult.sip
+%Include qtsql/qsqlselectcursor.sip
+
+%ExportedDoc
+</Sect1>
+%End
+
+
+%ExportedDoc
+<Sect1><Title><Literal>qttable</Literal> Module Reference</Title>
+%End
+
+%Include qttable/qtable.sip
+
+%ExportedDoc
+</Sect1>
+%End
+
+
+%ExportedDoc
+<Sect1><Title><Literal>qtui</Literal> Module Reference</Title>
+%End
+
+%Include qtui/qwidgetfactory.sip
+
+%ExportedDoc
+</Sect1>
+%End
+
+
+%ExportedDoc
+<Sect1><Title><Literal>qtxml</Literal> Module Reference</Title>
+%End
+
+%Include qtxml/qdom.sip
+
+%ExportedDoc
+</Sect1>
+%End
+
+
+%Doc
+</Article>
+%End