diff options
Diffstat (limited to 'doc/tqtdocs.sip')
-rw-r--r-- | doc/tqtdocs.sip | 1915 |
1 files changed, 1915 insertions, 0 deletions
diff --git a/doc/tqtdocs.sip b/doc/tqtdocs.sip new file mode 100644 index 0000000..5c8c295 --- /dev/null +++ b/doc/tqtdocs.sip @@ -0,0 +1,1915 @@ +// This is the SIP file for organising the PyTQt documentation. +// +// Copyright (c) 2007 +// Riverbank Computing Limited <[email protected]> +// +// This file is part of PyTQt. +// +// This copy of PyTQt 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. +// +// PyTQt 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 +// PyTQt; 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 tqt/versions.sip + + +%Doc +<!DOCTYPE Article PUBLIC "-//OASIS//DTD DocBook V3.1//EN"> +<Article> +<ArtHeader> + <Title>Python Bindings for TQt (3.18.1)</Title> + <Author> + <FirstName>Phil</FirstName> + <Surname>Thompson</Surname> + </Author> + <Abstract> + <Para> + This document describes a set of Python bindings for the TQt widget set. + Contact the author at <Email>[email protected]</Email>. + </Para> + </Abstract> +</ArtHeader> + + +<Sect1><Title>Introduction</Title> +<Para> +PyTQt is a set of Python bindings for the TQt toolkit and available for all +platforms supported by TQt, including Windows, Linux, UNIX, MacOS/X and embedded +systems such as the Sharp Zaurus and the Compaq iPAQ. They have been tested +against TQt versions 1.43 to 3.3.6, TQt Non-commercial, TQtopia 1.5.0, and Python +versions 1.5 to 2.4.2. TQt/Embedded v3 is not supported. TQt v4 is supported +by PyTQt v4. +</Para> + +<Para> +PyTQt is available under the GPL license for use with the GPL version of TQt, a +a commercial license for use with the commercial version of TQt, a +non-commercial license for use with the non-commercial version of TQt v2, and an +educational license for use with the educational version of TQt. +</Para> + +<Para> +There is also an evaluation version of PyTQt for Windows. This must be used +with the corresponding evaluation version of TQt. +</Para> + +<Para> +PyTQt 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 PyTQt. +</Para> + +<Para> +PyTQt for MacOS/X requires TQt 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>tqt</Literal> is the main module and contains the core classes and most +user interface widgets. +</Para> +</ListItem> + +<ListItem> +<Para> +<Literal>tqtaxcontainer</Literal> contains a sub-set of the classes implemented +in TQt's TQAxContainer module, part of TQt's ActiveTQt framework. +</Para> +</ListItem> + +<ListItem> +<Para> +<Literal>tqtcanvas</Literal> contains the classes implemented in TQt's Canvas +module. +</Para> +</ListItem> + +<ListItem> +<Para> +<Literal>tqtgl</Literal> contains the classes implemented in TQt's OpenGL module. +</Para> +</ListItem> + +<ListItem> +<Para> +<Literal>tqtnetwork</Literal> contains the classes implemented in TQt's Network +module. +</Para> +</ListItem> + +<ListItem> +<Para> +<Literal>tqtpe</Literal> contains the classes implemented in TQtopia (originally +called the TQt Palmtop Environment). It is only supported with TQt/Embedded. +</Para> +</ListItem> + +<ListItem> +<Para> +<Literal>tqtsql</Literal> contains the classes implemented in TQt's SQL module. +</Para> +</ListItem> + +<ListItem> +<Para> +<Literal>tqttable</Literal> contains the classes implemented in TQt's Table +module. +</Para> +</ListItem> + +<ListItem> +<Para> +<Literal>tqtui</Literal> contains the classes implemented in TQt's tqui library. +These allow GUIs to be created directly from TQt Designer's +<Literal>.ui</Literal> files. +</Para> +</ListItem> + +<ListItem> +<Para> +<Literal>tqtxml</Literal> contains the classes implemented in TQt's XML module. +</Para> +</ListItem> + +<ListItem> +<Para> +<Literal>tqtext</Literal> contains useful third-party classes that are not part +of TQt. At the moment it contains bindings for TQScintilla, the port to TQt of +the Scintilla programmer's editor class. +</Para> +</ListItem> +</ItemizedList> + +<Para> +PyTQt also includes the <Literal>pytquic</Literal> and +<Literal>pytqlupdate</Literal> utilities which correspond to the TQt +<Literal>uic</Literal> and <Literal>lupdate</Literal> utilities. +<Literal>pytquic</Literal> converts the GUI designs created with TQt Designer to +executable Python code. <Literal>pytqlupdate</Literal> scans Python code, +extracts all strings that are candidates for internationalisation, and creates +an XML file for use by TQt 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>TQString</Literal>s is now supported. +</Para> +</ListItem> + +<ListItem> +<Para> +<Literal>TQString</Literal> now supports the <Literal>*</Literal> and +<Literal>*=</Literal> operators that behave as they do for Python strings. +</Para> +</ListItem> + +<ListItem> +<Para> +<Literal>TQString</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>TQPopupMenu</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>TQObject.deleteLater()</Literal>. +</Para> +</ListItem> + +<ListItem> +<Para> +<Literal>TQObject.sender()</Literal> now handles Python signals. +</Para> +</ListItem> + +<ListItem> +<Para> +The missing <Literal>MacintoshVersion</Literal> enum has been added. +</Para> +</ListItem> + +<ListItem> +<Para> +<Literal>PYTQT_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 TQt list container would often be +converted to an empty list rather than <Literal>None</Literal>. +</Para> +</ListItem> + +</ItemizedList> +</Sect2> +</Sect1> + + +<Sect1><Title>Other PyTQt Goodies</Title> +<Sect2><Title>Using TQt Designer</Title> +<Para> +TQt Designer is a GPL'ed GUI design editor provided by Trolltech as part of TQt. +It generates an XML description of a GUI design. TQt includes +<Literal>uic</Literal> which generates C++ code from that XML. +</Para> + +<Para> +PyTQt includes <Literal>pytquic</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>pytquic</Literal>. For example, if you are using +custom widgets, <Literal>pytquic</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>pytquic</Literal> will extract any lines entered in the +<Literal>Comment</Literal> field of TQt 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 pytquic. +Python: +Python:# Import our custom widget. +Python:from foo import bar +</ProgramListing> + +<Para> +Here's the corresponding output from <Literal>pytquic</Literal>. +</Para> + +<ProgramListing> +from PyTQt.tqt import * + +# Import our custom widget. +from foo import bar +</ProgramListing> + +<Para> +Thanks to Christian Bird, <Literal>pytquic</Literal> will extract Python code +entered using TQt Designer to implement slots. In TQt 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>pytquic</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: + TQMessageBox.critical(self, "Event", "browse pushbutton was clicked!") +} +</ProgramListing> + +<Para> +Here is the resulting code when <Literal>pytquic</Literal> is run. +</Para> + +<ProgramListing> +class DebMainWindowFrm(TQMainWindow): + ...stuff... + def browsePushButtonClicked(self): + if self.debugging: + TQMessageBox.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 TQt Linguist</Title> +<Para> +TQt 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, PyTQt includes the <Literal>pytqlupdate</Literal> +program. This generates the same <Literal>.ts</Literal> language source files +from your PyTQt source files. +</Para> +</Sect2> +</Sect1> + + +<Sect1><Title>Deploying Commercial PyTQt Applications</Title> +<Para> +When deploying commercial PyTQt applications it is necessary to discourage users +from accessing the underlying PyTQt 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 TQt and +PyTQt 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 PyTQt 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 PyTQt with support for the VendorID package, pass the +<Literal>-i</Literal> command line flag to <Literal>configure.py</Literal>. +</Para> +</Sect1> + +<Sect1><Title><Literal>pytqtconfig</Literal> and Build System Support</Title> +<Para> +The SIP build system (ie. the <Literal>sipconfig</Literal> module) is described +in the SIP documentation. PyTQt includes the <Literal>pytqtconfig</Literal> +module that can be used by configuration scripts of other bindings that are +built on top of PyTQt. +</Para> + +<Para> +The <Literal>pytqtconfig</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 PyTQt, 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>pytqt_bin_dir</Literal></Term> +<ListItem> +<Para> +The name of the directory containing the <Literal>pytquic</Literal> and +<Literal>pytqlupdate</Literal> executables. +</Para> +<Para></Para><Para></Para> +</ListItem> +</VarListEntry> + +<VarListEntry> +<Term><Literal>pytqt_config_args</Literal></Term> +<ListItem> +<Para> +The command line passed to <Literal>configure.py</Literal> when PyTQt was +configured. +</Para> +<Para></Para><Para></Para> +</ListItem> +</VarListEntry> + +<VarListEntry> +<Term><Literal>pytqt_mod_dir</Literal></Term> +<ListItem> +<Para> +The name of the directory containing the PyTQt modules. +</Para> +<Para></Para><Para></Para> +</ListItem> +</VarListEntry> + +<VarListEntry> +<Term><Literal>pytqt_modules</Literal></Term> +<ListItem> +<Para> +A string containing the names of the PyTQt modules that were installed. +</Para> +<Para></Para><Para></Para> +</ListItem> +</VarListEntry> + +<VarListEntry> +<Term><Literal>pytqt_tqt_sip_flags</Literal></Term> +<ListItem> +<Para> +A string of the SIP flags used to generate the code for the +<Literal>tqt</Literal> module and which should be added to those needed by any +module that imports the <Literal>tqt</Literal> module. +</Para> +<Para></Para><Para></Para> +</ListItem> +</VarListEntry> + +<VarListEntry> +<Term><Literal>pytqt_tqtaxcontainer_sip_flags</Literal></Term> +<ListItem> +<Para> +A string of the SIP flags used to generate the code for the +<Literal>tqtaxcontainer</Literal> module and which should be added to those +needed by any module that imports the <Literal>tqtaxcontainer</Literal> module. +</Para> +<Para></Para><Para></Para> +</ListItem> +</VarListEntry> + +<VarListEntry> +<Term><Literal>pytqt_tqtcanvas_sip_flags</Literal></Term> +<ListItem> +<Para> +A string of the SIP flags used to generate the code for the +<Literal>tqtcanvas</Literal> module and which should be added to those needed by +any module that imports the <Literal>tqtcanvas</Literal> module. +</Para> +<Para></Para><Para></Para> +</ListItem> +</VarListEntry> + +<VarListEntry> +<Term><Literal>pytqt_tqtext_sip_flags</Literal></Term> +<ListItem> +<Para> +A string of the SIP flags used to generate the code for the +<Literal>tqtext</Literal> module and which should be added to those needed by +any module that imports the <Literal>tqtext</Literal> module. +</Para> +<Para></Para><Para></Para> +</ListItem> +</VarListEntry> + +<VarListEntry> +<Term><Literal>pytqt_tqtgl_sip_flags</Literal></Term> +<ListItem> +<Para> +A string of the SIP flags used to generate the code for the +<Literal>tqtgl</Literal> module and which should be added to those needed by any +module that imports the <Literal>tqtgl</Literal> module. +</Para> +<Para></Para><Para></Para> +</ListItem> +</VarListEntry> + +<VarListEntry> +<Term><Literal>pytqt_tqtnetwork_sip_flags</Literal></Term> +<ListItem> +<Para> +A string of the SIP flags used to generate the code for the +<Literal>tqtnetwork</Literal> module and which should be added to those needed +by any module that imports the <Literal>tqtnetwork</Literal> module. +</Para> +<Para></Para><Para></Para> +</ListItem> +</VarListEntry> + +<VarListEntry> +<Term><Literal>pytqt_tqtsql_sip_flags</Literal></Term> +<ListItem> +<Para> +A string of the SIP flags used to generate the code for the +<Literal>tqtsql</Literal> module and which should be added to those needed by +any module that imports the <Literal>tqtsql</Literal> module. +</Para> +<Para></Para><Para></Para> +</ListItem> +</VarListEntry> + +<VarListEntry> +<Term><Literal>pytqt_tqttable_sip_flags</Literal></Term> +<ListItem> +<Para> +A string of the SIP flags used to generate the code for the +<Literal>tqttable</Literal> module and which should be added to those needed by +any module that imports the <Literal>tqttable</Literal> module. +</Para> +<Para></Para><Para></Para> +</ListItem> +</VarListEntry> + +<VarListEntry> +<Term><Literal>pytqt_tqtui_sip_flags</Literal></Term> +<ListItem> +<Para> +A string of the SIP flags used to generate the code for the +<Literal>tqtui</Literal> module and which should be added to those needed by any +module that imports the <Literal>tqtui</Literal> module. +</Para> +<Para></Para><Para></Para> +</ListItem> +</VarListEntry> + +<VarListEntry> +<Term><Literal>pytqt_tqtxml_sip_flags</Literal></Term> +<ListItem> +<Para> +A string of the SIP flags used to generate the code for the +<Literal>tqtxml</Literal> module and which should be added to those needed by +any module that imports the <Literal>tqtxml</Literal> module. +</Para> +<Para></Para><Para></Para> +</ListItem> +</VarListEntry> + +<VarListEntry> +<Term><Literal>pytqt_sip_dir</Literal></Term> +<ListItem> +<Para> +The name of the base directory where the <Literal>.sip</Literal> files for each +of the PyTQt modules is installed. A sub-directory exists with the same name as +the module. +</Para> +<Para></Para><Para></Para> +</ListItem> +</VarListEntry> + +<VarListEntry> +<Term><Literal>pytqt_version</Literal></Term> +<ListItem> +<Para> +The PyTQt 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>pytqt_version_str</Literal></Term> +<ListItem> +<Para> +The PyTQt 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>TQtModuleMakefile(sipconfig.SIPModuleMakefile)</Literal></Term> +<ListItem> +<Para> +The Makefile class for modules that import the <Literal>tqt</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>TQtAxContainerModuleMakefile(TQtModuleMakefile)</Literal></Term> +<ListItem> +<Para> +The Makefile class for modules that import the <Literal>tqtaxcontainer</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>TQtCanvasModuleMakefile(TQtModuleMakefile)</Literal></Term> +<ListItem> +<Para> +The Makefile class for modules that import the <Literal>tqtcanvas</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>TQtExtModuleMakefile(TQtModuleMakefile)</Literal></Term> +<ListItem> +<Para> +The Makefile class for modules that import the <Literal>tqtext</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>TQtGLModuleMakefile(TQtModuleMakefile)</Literal></Term> +<ListItem> +<Para> +The Makefile class for modules that import the <Literal>tqtgl</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>TQtNetworkModuleMakefile(TQtModuleMakefile)</Literal></Term> +<ListItem> +<Para> +The Makefile class for modules that import the <Literal>tqtnetwork</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>TQtTableModuleMakefile(TQtModuleMakefile)</Literal></Term> +<ListItem> +<Para> +The Makefile class for modules that import the <Literal>tqttable</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>TQtSQLModuleMakefile(TQtTableModuleMakefile)</Literal></Term> +<ListItem> +<Para> +The Makefile class for modules that import the <Literal>tqtsql</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>TQtUIModuleMakefile(TQtModuleMakefile)</Literal></Term> +<ListItem> +<Para> +The Makefile class for modules that import the <Literal>tqtui</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>TQtXMLModuleMakefile(TQtModuleMakefile)</Literal></Term> +<ListItem> +<Para> +The Makefile class for modules that import the <Literal>tqtxml</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 PyTQt 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 PyTQt. +</Para> + +<Para> +In most circumstances this technique is transparent to an application. The +exception is when <Literal>super</Literal> is used with a PyTQt 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 +PyTQt. +</Para> +</Sect2> + + +<Sect2><Title>Python Strings, TQt Strings and Unicode</Title> +<Para> +Unicode support was added to TQt in v2.0 and to Python in v1.6. In TQt, Unicode +support is implemented using the <Literal>TQString</Literal> class. It is +important to understand that <Literal>TQString</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 PyTQt expects a <Literal>TQString</Literal> as a function argument, a +Python string object or a Python Unicode object can be provided instead, and +PyTQt will do the necessary conversion automatically. +</Para> + +<Para> +You may also manually convert Python string and Unicode objects to +<Literal>TQString</Literal>s by using the <Literal>TQString</Literal> constructor +as demonstrated in the following code fragment. +</Para> + +<ProgramListing> +qs1 = TQString('Converted Python string object') +qs2 = TQString(u'Converted Python Unicode object') +</ProgramListing> + +<Para> +In order to convert a <Literal>TQString</Literal> to a Python string object use +the Python <Literal>str()</Literal> function. Applying +<Literal>str()</Literal> to a null <Literal>TQString</Literal> and an empty +<Literal>TQString</Literal> both result in an empty Python string object. +</Para> + +<Para> +In order to convert a <Literal>TQString</Literal> to a Python Unicode object use +the Python <Literal>unicode()</Literal> function. Applying +<Literal>unicode()</Literal> to a null <Literal>TQString</Literal> and an empty +<Literal>TQString</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> +PyTQt 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> +PyTQt implements the full set of TQt'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 PyTQt does not impose any additional restrictions. +(Read the relevant part of the TQt documentation to understand the restrictions +imposed by the TQt 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 TQt API then the very first <Literal>import</Literal> of one of +the PyTQt modules must be done from the main thread. +</Para> +</ListItem> +<ListItem> +<Para> +If you use the Python API then all calls to PyTQt (including any +<Literal>import</Literal>s) must be done from one thread only. Therefore, if +you want to make calls to PyTQt from several threads then you must use the TQt +API. +</Para> +</ListItem> +<ListItem> +<Para> +If you want to use both APIs in the same application then all calls to PyTQt +must be done from threads created using the TQt API. +</Para> +</ListItem> +</ItemizedList> +<Para> +The above comments actually apply to any SIP generated module, not just PyTQt. +</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 TQColor(); +c = new TQColor(); +</ProgramListing> + +<Para> +In the corresponding Python fragment, the first colour is destroyed when +the second is assigned to <Literal>c</Literal>: +</Para> + +<ProgramListing> +c = TQColor() +c = TQColor() +</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 = TQColor() +self.c2 = TQColor() +</ProgramListing> + +<Para> +Sometimes a TQt 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>TQObject</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>TQLabel</Literal> is +not destroyed when the second is assigned to <Literal>l</Literal> because the +parent <Literal>TQWidget</Literal> still has a reference to it. +</Para> + +<ProgramListing> +p = TQWidget() +l = TQLabel('First label',p) +l = TQLabel('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 = TQTab() +tab.label = "First Tab" +tab.r = TQRect(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 TQt class. +</Para> +</Sect2> + +<Sect2><Title>i18n Support</Title> +<Para> +TQt implements i18n support through the TQt Linguist application, the +<Literal>TQTranslator</Literal> class, and the +<Literal>TQApplication::translate()</Literal>, <Literal>TQObject::tr()</Literal> +and <Literal>TQObject::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>TQApplication::translate()</Literal> +allows to context to be explicitly stated. +</Para> + +<Para> +Unfortunately, because of the way TQt implents <Literal>tr()</Literal> (and +<Literal>trUtf8()</Literal>) it is not possible for PyTQt to exactly reproduce +its behavour. The PyTQt 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 PyTQt, but is hardcoded in TQt. In other +words, the context of a translation may change depending on an instance's class +hierarchy. +</Para> + +<ProgramListing> +class A(TQObject): + def __init__(self): + TQObject.__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 PyTQt behaviour is unsatisfactory and may be changed in the future. It is +recommended that <Literal>TQApplication.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 PyTQt 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>TQApplication.translate()</Literal>. +</Para> + +<ProgramListing> +class A(TQObject): + def __init__(self): + TQObject.__init__(self) + + def hello(self): + return tqApp.translate("A","Hello") +</ProgramListing> + +<Para> +Note that the code generated by <Literal>pytquic</Literal> uses +<Literal>TQApplication.translate()</Literal>. +</Para> +</Sect2> +</Sect1> + + +<Sect1><Title>Signal and Slot Support</Title> +<Para> +A signal may be either a TQt 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 TQt signal (specified using +<Literal>SIGNAL()</Literal>), a Python signal (specified using +<Literal>PYSIGNAL()</Literal>), or a TQt 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> +TQObject.connect(a,SIGNAL("TQtSig()"),pyFunction) +TQObject.connect(a,SIGNAL("TQtSig()"),pyClass.pyMethod) +TQObject.connect(a,SIGNAL("TQtSig()"),PYSIGNAL("PySig")) +TQObject.connect(a,SIGNAL("TQtSig()"),SLOT("TQtSlot()")) +TQObject.connect(a,PYSIGNAL("PySig"),pyFunction) +TQObject.connect(a,PYSIGNAL("PySig"),pyClass.pyMethod) +TQObject.connect(a,PYSIGNAL("PySig"),SIGNAL("TQtSig()")) +TQObject.connect(a,PYSIGNAL("PySig"),SLOT("TQtSlot()")) +</ProgramListing> + +<Para> +When a slot is a Python method that corresponds to a TQt slot then a signal can +be connected to either the Python method or the TQt slot. The following +connections achieve the same effect. +</Para> + +<ProgramListing> +sbar = TQScrollBar() +lcd = TQLCDNumber() + +TQObject.connect(sbar,SIGNAL("valueChanged(int)"),lcd.display) +TQObject.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>TQObject</Literal> +class can emit a signal using the <Literal>emit</Literal> method. This takes +two arguments. The first is the Python or TQt 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> +TQt 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>TQObject::connect()</Literal> is called from Python as +<Literal>TQObject.connect()</Literal> or <Literal>self.connect()</Literal> if +called from a sub-class of <Literal>TQObject</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> +TQt.SolidPattern +TQWidget.TabFocus +TQFrame.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>tqt</Literal> Module Reference</Title> +%End + +%Include tqt/tqglobal.sip +%Include tqt/tqwindowdefs.sip +%Include tqt/tqnamespace.sip + +%Include tqt/tqaccel.sip +%Include tqt/tqaction.sip +%Include tqt/tqapplication.sip +%Include tqt/tqassistantclient.sip +%Include tqt/tqbitmap.sip +%Include tqt/tqbrush.sip +%Include tqt/tqbutton.sip +%Include tqt/tqbuttongroup.sip +%Include tqt/tqbytearray.sip +%Include tqt/tqcdestyle.sip +%Include tqt/tqcheckbox.sip +%Include tqt/tqclipboard.sip +%Include tqt/tqcolor.sip +%Include tqt/tqcolordialog.sip +%Include tqt/tqcolorgroup.sip +%Include tqt/tqcombobox.sip +%Include tqt/tqcommonstyle.sip +%Include tqt/tqcstring.sip +%Include tqt/tqcursor.sip +%Include tqt/tqdatastream.sip +%Include tqt/tqdatetime.sip +%Include tqt/tqdatetimeedit.sip +%Include tqt/tqdesktopwidget.sip +%Include tqt/tqdial.sip +%Include tqt/tqdialog.sip +%Include tqt/tqdir.sip +%Include tqt/tqdockarea.sip +%Include tqt/tqdockwindow.sip +%Include tqt/tqdragobject.sip +%Include tqt/tqdrawutil.sip +%Include tqt/tqdropsite.sip +%Include tqt/tqerrormessage.sip +%Include tqt/tqevent.sip +%Include tqt/tqeventloop.sip +%Include tqt/tqfile.sip +%Include tqt/tqfiledialog.sip +%Include tqt/tqfileinfo.sip +%Include tqt/tqfont.sip +%Include tqt/tqfontdatabase.sip +%Include tqt/tqfontdialog.sip +%Include tqt/tqfontinfo.sip +%Include tqt/tqfontmetrics.sip +%Include tqt/tqframe.sip +%Include tqt/tqgrid.sip +%Include tqt/tqgridview.sip +%Include tqt/tqgroupbox.sip +%Include tqt/tqhbox.sip +%Include tqt/tqhbuttongroup.sip +%Include tqt/tqheader.sip +%Include tqt/tqhgroupbox.sip +%Include tqt/tqiconset.sip +%Include tqt/tqiconview.sip +%Include tqt/tqimage.sip +%Include tqt/tqinputdialog.sip +%Include tqt/tqinterlacestyle.sip +%Include tqt/tqiodevice.sip +%Include tqt/tqkeysequence.sip +%Include tqt/tqlabel.sip +%Include tqt/tqlayout.sip +%Include tqt/tqlcdnumber.sip +%Include tqt/tqlibrary.sip +%Include tqt/tqlineedit.sip +%Include tqt/tqlistbox.sip +%Include tqt/tqlistview.sip +%Include tqt/tqlocale.sip +%Include tqt/tqmainwindow.sip +%Include tqt/tqmemarray.sip +%Include tqt/tqmenubar.sip +%Include tqt/tqmenudata.sip +%Include tqt/tqmessagebox.sip +%Include tqt/tqmetaobject.sip +%Include tqt/tqmime.sip +%Include tqt/tqmotifplusstyle.sip +%Include tqt/tqmotifstyle.sip +%Include tqt/tqmovie.sip +%Include tqt/tqmultilinedit.sip +%Include tqt/tqmutex.sip +%Include tqt/tqnetworkprotocol.sip +%Include tqt/tqobject.sip +%Include tqt/tqobjectcleanuphandler.sip +%Include tqt/tqobjectlist.sip +%Include tqt/tqpaintdevicemetrics.sip +%Include tqt/tqpaintdevice.sip +%Include tqt/tqpainter.sip +%Include tqt/tqpalette.sip +%Include tqt/tqpixmap.sip +%Include tqt/tqpixmapcache.sip +%Include tqt/tqpair.sip +%Include tqt/tqpen.sip +%Include tqt/tqpicture.sip +%Include tqt/tqplatinumstyle.sip +%Include tqt/tqpoint.sip +%Include tqt/tqpointarray.sip +%Include tqt/tqpopupmenu.sip +%Include tqt/tqprintdialog.sip +%Include tqt/tqprinter.sip +%Include tqt/tqprocess.sip +%Include tqt/tqprogressbar.sip +%Include tqt/tqprogressdialog.sip +%Include tqt/tqptrlist.sip +%Include tqt/tqpushbutton.sip +%Include tqt/tqradiobutton.sip +%Include tqt/tqrangecontrol.sip +%Include tqt/tqrect.sip +%Include tqt/tqregexp.sip +%Include tqt/tqregion.sip +%Include tqt/tqscrollbar.sip +%Include tqt/tqscrollview.sip +%Include tqt/tqsemaphore.sip +%Include tqt/tqsemimodal.sip +%Include tqt/tqsessionmanager.sip +%Include tqt/tqsettings.sip +%Include tqt/tqsgistyle.sip +%Include tqt/tqsignalmapper.sip +%Include tqt/tqsimplerichtext.sip +%Include tqt/tqsize.sip +%Include tqt/tqsizegrip.sip +%Include tqt/tqsizepolicy.sip +%Include tqt/tqslider.sip +%Include tqt/tqsocketnotifier.sip +%Include tqt/tqsound.sip +%Include tqt/tqspinbox.sip +%Include tqt/tqsplashscreen.sip +%Include tqt/tqsplitter.sip +%Include tqt/tqstatusbar.sip +%Include tqt/tqstring.sip +%Include tqt/tqstringlist.sip +%Include tqt/tqstrlist.sip +%Include tqt/tqstyle.sip +%Include tqt/tqstylesheet.sip +%Include tqt/tqsyntaxhighlighter.sip +%Include tqt/tqtabbar.sip +%Include tqt/tqtabdialog.sip +%Include tqt/tqtabwidget.sip +%Include tqt/tqtextbrowser.sip +%Include tqt/tqtextcodec.sip +%Include tqt/tqtextedit.sip +%Include tqt/tqtextstream.sip +%Include tqt/tqtextview.sip +%Include tqt/tqthread.sip +%Include tqt/tqtimer.sip +%Include tqt/tqtoolbar.sip +%Include tqt/tqtoolbox.sip +%Include tqt/tqtoolbutton.sip +%Include tqt/tqtooltip.sip +%Include tqt/tqtranslator.sip +%Include tqt/tqurl.sip +%Include tqt/tqurlinfo.sip +%Include tqt/tqurloperator.sip +%Include tqt/tquuid.sip +%Include tqt/tqvalidator.sip +%Include tqt/tqvaluelist.sip +%Include tqt/tqvariant.sip +%Include tqt/tqvbox.sip +%Include tqt/tqvbuttongroup.sip +%Include tqt/tqvgroupbox.sip +%Include tqt/tqwaitcondition.sip +%Include tqt/tqwhatsthis.sip +%Include tqt/tqwidget.sip +%Include tqt/tqwidgetlist.sip +%Include tqt/tqwidgetstack.sip +%Include tqt/tqwindowsstyle.sip +%Include tqt/tqwindowsxpstyle.sip +%Include tqt/tqwizard.sip +%Include tqt/tqwmatrix.sip +%Include tqt/tqworkspace.sip + +%ExportedDoc +</Sect1> +%End + + +%ExportedDoc +<Sect1><Title><Literal>tqtaxcontainer</Literal> Module Reference</Title> +%End + +%Include tqtaxcontainer/tqaxbase.sip +%Include tqtaxcontainer/tqaxobject.sip +%Include tqtaxcontainer/tqaxwidget.sip + +%ExportedDoc +</Sect1> +%End + + +%ExportedDoc +<Sect1><Title><Literal>tqtcanvas</Literal> Module Reference</Title> +%End + +%Include tqtcanvas/tqcanvas.sip + +%ExportedDoc +</Sect1> +%End + + +%ExportedDoc +<Sect1><Title><Literal>tqtext</Literal> Module Reference</Title> + +<Sect2><Title>TQextScintilla</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>TQextScintillaAPIs</Title> +<Para> +<Literal>TQextScintillaAPIs</Literal> is fully implemented. +</Para> +</Sect2> + +<Sect2><Title>TQextScintillaBase</Title> +<Para> +<Literal>TQextScintillaBase</Literal> is fully implemented. +</Para> +</Sect2> + +<Sect2><Title>TQextScintillaCommand</Title> +<Para> +<Literal>TQextScintillaCommand</Literal> is fully implemented. +</Para> +</Sect2> + +<Sect2><Title>TQextScintillaCommandSet</Title> +<Para> +<Literal>TQextScintillaCommandSet</Literal> is fully implemented. +</Para> +</Sect2> + +<Sect2><Title>TQextScintillaDocument</Title> +<Para> +<Literal>TQextScintillaDocument</Literal> is fully implemented. +</Para> +</Sect2> + +<Sect2><Title>TQextScintillaLexer</Title> +<Para> +<Literal>TQextScintillaLexer</Literal> is fully implemented. +</Para> +</Sect2> + +<Sect2><Title>TQextScintillaLexerBash (TQScintilla v1.4+)</Title> +<Para> +<Literal>TQextScintillaLexerBash</Literal> is fully implemented. +</Para> +</Sect2> + +<Sect2><Title>TQextScintillaLexerBatch (TQScintilla v1.6+)</Title> +<Para> +<Literal>TQextScintillaLexerBatch</Literal> is fully implemented. +</Para> +</Sect2> + +<Sect2><Title>TQextScintillaLexerCPP</Title> +<Para> +<Literal>TQextScintillaLexerCPP</Literal> is fully implemented. +</Para> +</Sect2> + +<Sect2><Title>TQextScintillaLexerCSharp</Title> +<Para> +<Literal>TQextScintillaLexerCSharp</Literal> is fully implemented. +</Para> +</Sect2> + +<Sect2><Title>TQextScintillaLexerCSS (TQScintilla v1.6+)</Title> +<Para> +<Literal>TQextScintillaLexerCSS</Literal> is fully implemented. +</Para> +</Sect2> + +<Sect2><Title>TQextScintillaLexerDiff (TQScintilla v1.6+)</Title> +<Para> +<Literal>TQextScintillaLexerDiff</Literal> is fully implemented. +</Para> +</Sect2> + +<Sect2><Title>TQextScintillaLexerHTML (TQScintilla v1.1+)</Title> +<Para> +<Literal>TQextScintillaLexerHTML</Literal> is fully implemented. +</Para> +</Sect2> + +<Sect2><Title>TQextScintillaLexerIDL</Title> +<Para> +<Literal>TQextScintillaLexerIDL</Literal> is fully implemented. +</Para> +</Sect2> + +<Sect2><Title>TQextScintillaLexerJava</Title> +<Para> +<Literal>TQextScintillaLexerJava</Literal> is fully implemented. +</Para> +</Sect2> + +<Sect2><Title>TQextScintillaLexerJavaScript</Title> +<Para> +<Literal>TQextScintillaLexerJavaScript</Literal> is fully implemented. +</Para> +</Sect2> + +<Sect2><Title>TQextScintillaLexerLua (TQScintilla v1.5+)</Title> +<Para> +<Literal>TQextScintillaLexerLua</Literal> is fully implemented. +</Para> +</Sect2> + +<Sect2><Title>TQextScintillaLexerMakefile (TQScintilla v1.6+)</Title> +<Para> +<Literal>TQextScintillaLexerMakefile</Literal> is fully implemented. +</Para> +</Sect2> + +<Sect2><Title>TQextScintillaLexerPerl</Title> +<Para> +<Literal>TQextScintillaLexerPerl</Literal> is fully implemented. +</Para> +</Sect2> + +<Sect2><Title>TQextScintillaLexerPOV (TQScintilla v1.6+)</Title> +<Para> +<Literal>TQextScintillaLexerPOV</Literal> is fully implemented. +</Para> +</Sect2> + +<Sect2><Title>TQextScintillaLexerProperties (TQScintilla v1.6+)</Title> +<Para> +<Literal>TQextScintillaLexerProperties</Literal> is fully implemented. +</Para> +</Sect2> + +<Sect2><Title>TQextScintillaLexerPython</Title> +<Para> +<Literal>TQextScintillaLexerPython</Literal> is fully implemented. +</Para> +</Sect2> + +<Sect2><Title>TQextScintillaLexerRuby (TQScintilla v1.5+)</Title> +<Para> +<Literal>TQextScintillaLexerRuby</Literal> is fully implemented. +</Para> +</Sect2> + +<Sect2><Title>TQextScintillaLexerSQL (TQScintilla v1.1+)</Title> +<Para> +<Literal>TQextScintillaLexerSQL</Literal> is fully implemented. +</Para> +</Sect2> + +<Sect2><Title>TQextScintillaLexerTeX (TQScintilla v1.6+)</Title> +<Para> +<Literal>TQextScintillaLexerTeX</Literal> is fully implemented. +</Para> +</Sect2> + +<Sect2><Title>TQextScintillaMacro</Title> +<Para> +<Literal>TQextScintillaMacro</Literal> is fully implemented. +</Para> +</Sect2> + +<Sect2><Title>TQextScintillaPrinter</Title> +<Para> +<Literal>TQextScintillaPrinter</Literal> is fully implemented. +</Para> +</Sect2> +%End + + +%ExportedDoc +</Sect1> +%End + + +%ExportedDoc +<Sect1><Title><Literal>tqtgl</Literal> Module Reference</Title> +%End + +%Include tqtgl/tqgl.sip +%Include tqtgl/tqglcolormap.sip + +%ExportedDoc +</Sect1> +%End + + +%ExportedDoc +<Sect1><Title><Literal>tqtnetwork</Literal> Module Reference</Title> +%End + +%Include tqtnetwork/tqdns.sip +%Include tqtnetwork/tqftp.sip +%Include tqtnetwork/tqhostaddress.sip +%Include tqtnetwork/tqhttp.sip +%Include tqtnetwork/tqlocalfs.sip +%Include tqtnetwork/tqnetwork.sip +%Include tqtnetwork/tqserversocket.sip +%Include tqtnetwork/tqsocket.sip +%Include tqtnetwork/tqsocketdevice.sip + +%ExportedDoc +</Sect1> +%End + + +%ExportedDoc +<Sect1><Title><Literal>tqtpe</Literal> Module Reference</Title> + +<Sect2><Title>TQPEApplication</Title> +<FuncSynopsis> + <FuncDef><Function>TQApplication</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 TQt 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 TQString <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>TQString <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>TQCopEnvelope</Title> +<Para> +<Literal>TQCopEnvelope</Literal> is fully implemented. +</Para> +</Sect2> + +<Sect2><Title>TQDawg</Title> +<Para> +<Literal>TQDawg</Literal> is fully implemented. +</Para> +</Sect2> + +<Sect2><Title>TQPEMenuBar</Title> +<Para> +<Literal>TQPEMenuBar</Literal> is fully implemented. +</Para> +</Sect2> + +<Sect2><Title>TQPEToolBar</Title> +<Para> +<Literal>TQPEToolBar</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>tqtsql</Literal> Module Reference</Title> +%End + +%Include tqtsql/tqdatabrowser.sip +%Include tqtsql/tqdatatable.sip +%Include tqtsql/tqdataview.sip +%Include tqtsql/tqeditorfactory.sip +%Include tqtsql/tqsql.sip +%Include tqtsql/tqsqlcursor.sip +%Include tqtsql/tqsqldatabase.sip +%Include tqtsql/tqsqldriver.sip +%Include tqtsql/tqsqleditorfactory.sip +%Include tqtsql/tqsqlerror.sip +%Include tqtsql/tqsqlfield.sip +%Include tqtsql/tqsqlform.sip +%Include tqtsql/tqsqlindex.sip +%Include tqtsql/tqsqlpropertymap.sip +%Include tqtsql/tqsqlquery.sip +%Include tqtsql/tqsqlrecord.sip +%Include tqtsql/tqsqlresult.sip +%Include tqtsql/tqsqlselectcursor.sip + +%ExportedDoc +</Sect1> +%End + + +%ExportedDoc +<Sect1><Title><Literal>tqttable</Literal> Module Reference</Title> +%End + +%Include tqttable/tqtable.sip + +%ExportedDoc +</Sect1> +%End + + +%ExportedDoc +<Sect1><Title><Literal>tqtui</Literal> Module Reference</Title> +%End + +%Include tqtui/tqwidgetfactory.sip + +%ExportedDoc +</Sect1> +%End + + +%ExportedDoc +<Sect1><Title><Literal>tqtxml</Literal> Module Reference</Title> +%End + +%Include tqtxml/tqdom.sip + +%ExportedDoc +</Sect1> +%End + + +%Doc +</Article> +%End |