diff options
Diffstat (limited to 'doc/static.html')
-rw-r--r-- | doc/static.html | 183 |
1 files changed, 183 insertions, 0 deletions
diff --git a/doc/static.html b/doc/static.html new file mode 100644 index 0000000..e68f13b --- /dev/null +++ b/doc/static.html @@ -0,0 +1,183 @@ +<HTML> +<HEAD> +<TITLE>Types and Related Topics</TITLE> +</HEAD> +<BODY CLASS="SECT1"> +<DIV CLASS="NAVHEADER"> +<TABLE SUMMARY="Header navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0"> +<TR> +<TH COLSPAN="3" ALIGN="center">Python Bindings for KDE (PyKDE-3.16.0)</TH> +</TR> +<TR> +<TD WIDTH="10%" ALIGN="left" VALIGN="bottom"> +<A HREF="signal.html" ACCESSKEY="P">Prev</A> +</TD> +<TD WIDTH="80%" ALIGN="center" VALIGN="bottom"></TD> +<TD WIDTH="10%" ALIGN="right" VALIGN="bottom"> +<A HREF="classref/index.html" ACCESSKEY="N">Next</A> +</TD> +</TR> +</TABLE> +<HR ALIGN="LEFT" WIDTH="100%"> +</DIV> +<H1>Types and Related Topics</H1> +<H2>Static Member Functions</H2> +<P> +Static member functions are implemented as Python class functions. +For example the C++ static member function +<TT CLASS="LITERAL" >QObject::connect()</TT> +is called from Python as +<TT CLASS="LITERAL">QObject.connect()</TT> or +<TT CLASS="LITERAL">self.connect()</TT> +if called from a sub-class of +<TT CLASS="LITERAL">QObject</TT>. +</P> +<h2>None and NULL</h2> +<P>Throughout the bindings, the +<TT CLASS="LITERAL">None</TT> +value can be specified wherever +<TT CLASS="LITERAL">NULL</TT> +is acceptable to the underlying C++ code.</P> +<P >Equally, +<TT CLASS="LITERAL">NULL</TT> +is converted to +<TT CLASS="LITERAL">None</TT> +whenever it is returned by the underlying C++ code +</P> + +<h2>Enumerated Types</H2> +<P> +Enumerated types are implemented as a set of simple variables corresponding to +the separate enumerated values. +</P> +<P> +When using an enumerated value the name of the class (or a sub-class) in which +the enumerated type was defined in must be included. For example: +</P> +<TABLE BORDER="0" BGCOLOR="#E0E0E0" WIDTH="100%" > +<TR> +<TD> +<PRE CLASS="PROGRAMLISTING"> +Qt.SolidPattern +QWidget.TabFocus +QFrame.TabFocus +</PRE> +</TD> +</TR> +</TABLE> + +<H2>Namespaces</H2> +<P> +The C++ code in KDE makes extensive use of namespaces (especially in the kio, kjs, +khtml, kfile, and kparts modules). In PyKDE, namespaces are treated as a "superclass". +For example, "from kparts import KParts" will import the KParts namespace and all +its members. To reference a class in the namespace, use <namespace name>..<classname>, +for example, KParts.ReadOnlyPart. It isn't necessary to import the <classname> (ReadOnlyPart +in the example). +</P> +<h2>Return and Argument Types</h2> +<p> +Some return types or argument types may be different than those in the C++ KDE libs. This is +done for convenience (eg returning/taking Python lists or dicts), because arguments are +scalar (non-object) types passed by reference (eg int*, bool&), or because there is no +way to express the C++ type in Python (eg template types) +</p> +<p> +Please check the <a href="docs.html">Class Reference Docs</a> which list all classes +and methods in Python format. +</p> +<h2>Version Information</h2><h4><i>New in PyKDE-3.11</i></h4> +<p> +PyKDE provides methods for determining both the KDE version being run and the PyKDE +version being run. The version methods are: +</p> +<table border="0" bgcolor="#E0E0E0" width="100%"> +<tr> +<th align = "left" width = "20%"><u>return type</u></th> +<th align = "left" width = "20%"><u>KDE</u></th> +<th align = "center" width = "10%"><u>Example</u></th> +<th></th> +<th align = "left" width = "20%"><u>PyKDE</u></th> +<th align = "center" width = "20%"><u>Example</u></th> +</tr> +<tr> +<td>int</td> +<td>KDE.versionMajor ()</td> +<td align = "center">3</td> +<td></td> +<td>PyKDE.versionMajor ()</td> +<td align = "center">3</td> +</tr> +<tr> +<td>int</td> +<td>KDE.versionMinor ()</td> +<td align = "center">1</td> +<td></td> +<td>PyKDE.versionMinor ()</td> +<td align = "center">8</td> +</tr> +<tr> +<td>int</td> +<td>KDE.versionRelease ()</td> +<td align = "center">4</td> +<td></td> +<td>PyKDE.versionRelease ()</td> +<td align = "center">0</td> +</tr> +<tr> +<td>string</td> +<td>KDE.versionString ()</td> +<td align = "center">"3.1.4"</td> +<td></td> +<td>PyKDE.versionString ()</td> +<td align = "center">"3.11.0"</td> +</tr> +</table> + +<h2>Abstract Classes and Pure Virtual Methods</h2> +<P> +C++ allows the use of abstract classes. Abstract classes cannot be used in programs +(instantiated) directly; their only purpose is to serve as a base class from which +programmers can derive other classes that can be used. +</P> +<P> +An abstract class in C++ is defined as a class that has one or more 'pure virtual' +methods. These can be identified in the C++ header files or C++ docs as methods set +equal to 0, for example: +</P> +<TABLE BORDER="0" BGCOLOR="#E0E0E0" WIDTH="100%"> +<TR> +<TD> +<PRE CLASS="PROGRAMLISTING"> +virtual int somePureVirtualMethod (int a) = 0; +</PRE> +</TD> +</TR> +</TABLE> +<P> +To derive a useful class from the abstract class, the programmer has to write methods +to overload each of the pure virtual methods. Following a suggestion on the mailing +list, the docs attempt to flag all abstract classes and identify the pure virtual +methods which must be overloaded in the derived class. Derived classes can be created +in Python by writing Python methods to overload the pure virtual methods - no C++ code +is required. +</P> + +<DIV CLASS="NAVFOOTER"> +<HR ALIGN="LEFT" WIDTH="100%"> +<TABLE SUMMARY="Footer navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" > +<TR> +<TD WIDTH="33%" ALIGN="left" VALIGN="top"><A HREF="signal.html" ACCESSKEY="P">Prev</A></TD> +<TD WIDTH="34%" ALIGN="center" VALIGN="top"><A HREF="index.html" ACCESSKEY="H">Home</A></TD> +<TD WIDTH="33%" ALIGN="right" VALIGN="top"><A HREF="classref/index.html" ACCESSKEY="N">Next</A></TD> +</TR> +<TR> +<TD WIDTH="33%" ALIGN="left" VALIGN="top">Signals and Slots</TD> +<TD WIDTH="34%" ALIGN="center" VALIGN="top"> </TD> +<TD WIDTH="33%" ALIGN="right" VALIGN="top">Class Reference</TD> +</TR> +</TABLE> +</DIV> + +</BODY> +</HTML> |