|
|
|
// This is the SIP file for organising the PyTQt documentation.
|
|
|
|
//
|
|
|
|
// Copyright (c) 2007
|
|
|
|
// Riverbank Computing Limited <info@riverbankcomputing.co.uk>
|
|
|
|
//
|
|
|
|
// 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 qt/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>phil@riverbankcomputing.co.uk</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>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 TQt's TQAxContainer module, part of TQt's ActiveTQt framework.
|
|
|
|
</Para>
|
|
|
|
</ListItem>
|
|
|
|
|
|
|
|
<ListItem>
|
|
|
|
<Para>
|
|
|
|
<Literal>qtcanvas</Literal> contains the classes implemented in TQt's Canvas
|
|
|
|
module.
|
|
|
|
</Para>
|
|
|
|
</ListItem>
|
|
|
|
|
|
|
|
<ListItem>
|
|
|
|
<Para>
|
|
|
|
<Literal>qtgl</Literal> contains the classes implemented in TQt's OpenGL module.
|
|
|
|
</Para>
|
|
|
|
</ListItem>
|
|
|
|
|
|
|
|
<ListItem>
|
|
|
|
<Para>
|
|
|
|
<Literal>qtnetwork</Literal> contains the classes implemented in TQt's Network
|
|
|
|
module.
|
|
|
|
</Para>
|
|
|
|
</ListItem>
|
|
|
|
|
|
|
|
<ListItem>
|
|
|
|
<Para>
|
|
|
|
<Literal>qtpe</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>qtsql</Literal> contains the classes implemented in TQt's SQL module.
|
|
|
|
</Para>
|
|
|
|
</ListItem>
|
|
|
|
|
|
|
|
<ListItem>
|
|
|
|
<Para>
|
|
|
|
<Literal>qttable</Literal> contains the classes implemented in TQt's Table
|
|
|
|
module.
|
|
|
|
</Para>
|
|
|
|
</ListItem>
|
|
|
|
|
|
|
|
<ListItem>
|
|
|
|
<Para>
|
|
|
|
<Literal>qtui</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>qtxml</Literal> contains the classes implemented in TQt's XML module.
|
|
|
|
</Para>
|
|
|
|
</ListItem>
|
|
|
|
|
|
|
|
<ListItem>
|
|
|
|
<Para>
|
|
|
|
<Literal>qtext</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>pyuic</Literal> and
|
|
|
|
<Literal>pylupdate</Literal> utilities which correspond to the TQt
|
|
|
|
<Literal>uic</Literal> and <Literal>lupdate</Literal> utilities.
|
|
|
|
<Literal>pyuic</Literal> converts the GUI designs created with TQt 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 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>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 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>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 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 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 python_tqt.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 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>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:
|
|
|
|
TQMessageBox.critical(self, "Event", "browse pushbutton was clicked!")
|
|
|
|
}
|
|
|
|
</ProgramListing>
|
|
|
|
|
|
|
|
<Para>
|
|
|
|
Here is the resulting code when <Literal>pyuic</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>pylupdate</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>pyqtconfig</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>pyqtconfig</Literal>
|
|
|
|
module that can be used by configuration scripts of other bindings that are
|
|
|
|
built on top of PyTQt.
|
|
|
|
</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 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>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 PyTQt 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 PyTQt modules.
|
|
|
|
</Para>
|
|
|
|
<Para></Para><Para></Para>
|
|
|
|
</ListItem>
|
|
|
|
</VarListEntry>
|
|
|
|
|
|
|
|
<VarListEntry>
|
|
|
|
<Term><Literal>pyqt_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>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 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>pyqt_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>pyqt_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>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>TQtAxContainerModuleMakefile(TQtModuleMakefile)</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>TQtCanvasModuleMakefile(TQtModuleMakefile)</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>TQtExtModuleMakefile(TQtModuleMakefile)</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>TQtGLModuleMakefile(TQtModuleMakefile)</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>TQtNetworkModuleMakefile(TQtModuleMakefile)</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>TQtTableModuleMakefile(TQtModuleMakefile)</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>TQtSQLModuleMakefile(TQtTableModuleMakefile)</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>TQtUIModuleMakefile(TQtModuleMakefile)</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>TQtXMLModuleMakefile(TQtModuleMakefile)</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 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>pyuic</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>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/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/qkeysequence.sip
|
|
|
|
%Include qt/qlabel.sip
|
|
|
|
%Include qt/qlayout.sip
|
|
|
|
%Include qt/qlcdnumber.sip
|
|
|
|
%Include qt/qlibrary.sip
|
|
|
|
%Include qt/qlineedit.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/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/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 (TQScintilla v1.4+)</Title>
|
|
|
|
<Para>
|
|
|
|
<Literal>QextScintillaLexerBash</Literal> is fully implemented.
|
|
|
|
</Para>
|
|
|
|
</Sect2>
|
|
|
|
|
|
|
|
<Sect2><Title>QextScintillaLexerBatch (TQScintilla 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 (TQScintilla v1.6+)</Title>
|
|
|
|
<Para>
|
|
|
|
<Literal>QextScintillaLexerCSS</Literal> is fully implemented.
|
|
|
|
</Para>
|
|
|
|
</Sect2>
|
|
|
|
|
|
|
|
<Sect2><Title>QextScintillaLexerDiff (TQScintilla v1.6+)</Title>
|
|
|
|
<Para>
|
|
|
|
<Literal>QextScintillaLexerDiff</Literal> is fully implemented.
|
|
|
|
</Para>
|
|
|
|
</Sect2>
|
|
|
|
|
|
|
|
<Sect2><Title>QextScintillaLexerHTML (TQScintilla 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 (TQScintilla v1.5+)</Title>
|
|
|
|
<Para>
|
|
|
|
<Literal>QextScintillaLexerLua</Literal> is fully implemented.
|
|
|
|
</Para>
|
|
|
|
</Sect2>
|
|
|
|
|
|
|
|
<Sect2><Title>QextScintillaLexerMakefile (TQScintilla 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 (TQScintilla v1.6+)</Title>
|
|
|
|
<Para>
|
|
|
|
<Literal>QextScintillaLexerPOV</Literal> is fully implemented.
|
|
|
|
</Para>
|
|
|
|
</Sect2>
|
|
|
|
|
|
|
|
<Sect2><Title>QextScintillaLexerProperties (TQScintilla 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 (TQScintilla v1.5+)</Title>
|
|
|
|
<Para>
|
|
|
|
<Literal>QextScintillaLexerRuby</Literal> is fully implemented.
|
|
|
|
</Para>
|
|
|
|
</Sect2>
|
|
|
|
|
|
|
|
<Sect2><Title>QextScintillaLexerSQL (TQScintilla v1.1+)</Title>
|
|
|
|
<Para>
|
|
|
|
<Literal>QextScintillaLexerSQL</Literal> is fully implemented.
|
|
|
|
</Para>
|
|
|
|
</Sect2>
|
|
|
|
|
|
|
|
<Sect2><Title>QextScintillaLexerTeX (TQScintilla 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>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>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
|