##// END OF EJS Templates
improved docs...
florianlink -
r141:034b14b9460f
parent child
Show More
@@ -66,31 +66,12
66 66 Image Processing and Visualization platform MeVisLab (http://www.mevislab.de)
67 67 scriptable from Python.
68 68
69
69 70 \section Download
70 71
71 72 PythonQt is hosted on SourceForge at http://sourceforge.net/projects/pythonqt , you can access it via SVN
72 73 or download a tarball.
73 74
74 \section Licensing
75
76 PythonQt is distributed under the LGPL license, so it pairs well with the LGPL of the Qt 4.5 release and allows
77 to be used in commercial applications when following the LGPL 2.1 obligations.
78
79 \section LicensingWrapper Licensing of Wrapper Generator
80
81 The build system of PythonQt makes use of a modified version of the LGPL'ed QtScript generator,
82 located in the "generator" directory.
83
84 See http://qt.gitorious.org/qt-labs/qtscriptgenerator for details on the original project.
85 Thanks a lot to the QtJambi guys and the QtScript Generator project for the C++ parser and
86 Qt typesystem files!
87
88 The PythonQt wrappers generated by the generator located in the "generated_cpp" directory are free to be used without any licensing restrictions.
89
90 The generated wrappers are pre-generated and checked-in for Qt 4.6.1, so you only need to build and run the
91 generator when you want to build additional wrappers or you want to upgrade/downgrade to another Qt version.
92 You may use the generator to generate C++ bindings for your own C++ classes (e.g., to make them inheritable in Python),
93 , but this is currently not documented and involves creating your own typesystem files (although the Qt Jambi examples might help you).
94 75
95 76 \section Features
96 77
@@ -137,7 +118,28
137 118 - Polymorphic downcasting on QEvent, QGraphicsItem, QStyleOption, ...
138 119 - Multiple inheritance support (e.g., QGraphicsTextItem is a QObject AND a QGraphicsItem, PythonQt will handle this well)
139 120
140 \section Comparision Comparision with PyQt/PySide
121
122 \section Licensing
123
124 PythonQt is distributed under the LGPL license, so it pairs well with the LGPL of the Qt 4.5 release and allows
125 to be used in commercial applications when following the LGPL 2.1 obligations.
126
127 The build system of PythonQt makes use of a modified version of the LGPL'ed QtScript generator,
128 located in the "generator" directory.
129
130 See http://qt.gitorious.org/qt-labs/qtscriptgenerator for details on the original project.
131 Thanks a lot to the QtJambi guys and the QtScript Generator project for the C++ parser and
132 Qt typesystem files!
133
134 The PythonQt wrappers generated by the generator located in the "generated_cpp" directory are free to be used without any licensing restrictions.
135
136 The generated wrappers are pre-generated and checked-in for Qt 4.6.1, so you only need to build and run the
137 generator when you want to build additional wrappers or you want to upgrade/downgrade to another Qt version.
138 You may use the generator to generate C++ bindings for your own C++ classes (e.g., to make them inheritable in Python),
139 but this is currently not documented and involves creating your own typesystem files (although the Qt Jambi examples might help you).
140
141
142 \section Comparison Comparison with PyQt/PySide
141 143
142 144 - PythonQt is not as pythonic as PyQt in many details (e.g. buffer protocol, pickling, translation support, ...) and it is mainly thought for embedding and intercommunication between Qt/Cpp and Python
143 145 - PythonQt allows to communicate in both directions, e.g., calling a Python object from C++ AND calling a C++ method from Python, while PyQt only handles the Python->C++ direction
@@ -173,7 +175,7
173 175 <tr><td>long</td><td>integer</td></tr>
174 176 <tr><td>ulong,longlong,ulonglong</td><td>long</td></tr>
175 177 <tr><td>QString</td><td>unicode string</td></tr>
176 <tr><td>QByteArray</td><td>str</td></tr>
178 <tr><td>QByteArray</td><td>QByteArray wrapper</td></tr>
177 179 <tr><td>char*</td><td>str</td></tr>
178 180 <tr><td>QStringList</td><td>tuple of unicode strings</td></tr>
179 181 <tr><td>QVariantList</td><td>tuple of objects</td></tr>
@@ -182,17 +184,17
182 184 <tr><td>QSize, QRect and all other standard Qt QVariants</td><td>variant wrapper that supports complete API of the respective Qt classes</td></tr>
183 185 <tr><td>OwnRegisteredMetaType</td><td>C++ wrapper, optionally with additional information/wrapping provided by registerCPPClass()</td></tr>
184 186 <tr><td>QList<AnyObject*></td><td>converts to a list of CPP wrappers</td></tr>
185 <tr><td>EnumType</td><td>integer (all enums that are known via the moc and the Qt namespace are supported)</td></tr>
187 <tr><td>QVector<AnyObject*></td><td>converts to a list of CPP wrappers</td></tr>
188 <tr><td>EnumType</td><td>Enum wrapper derived from python integer</td></tr>
186 189 <tr><td>QObject (and derived classes)</td><td>QObject wrapper</td></tr>
187 190 <tr><td>C++ object</td><td>CPP wrapper, either wrapped via PythonQtCppWrapperFactory or just decorated with decorators</td></tr>
188 191 <tr><td>PyObject</td><td>PyObject</td></tr>
189 192 </table>
190 193
191 PyObject is passed as simple pointer, which allows to pass/return any Python Object directly to/from
192 a Qt slot.
194 PyObject is passed as direct pointer, which allows to pass/return any Python object directly to/from
195 a Qt slot that uses PyObject* as its argument/return value.
193 196 QVariants are mapped recursively as given above, e.g. a dictionary can
194 197 contain lists of dictionaries of doubles.
195 For example a QVariant of type "String" is mapped to a python unicode string.
196 198 All Qt QVariant types are implemented, PythonQt supports the complete Qt API for these object.
197 199
198 200 \section QObject QObject Wrapping
@@ -413,15 +415,15 the python2x.[lib | dll | so | dynlib].
413 415 When using the prebuild Python installer, this will be:
414 416
415 417 \code
416 > set PYTHON_PATH = c:\Python25
417 > set PYTHON_LIB = c:\Python25\libs
418 > set PYTHON_PATH = c:\Python26
419 > set PYTHON_LIB = c:\Python26\libs
418 420 \endcode
419 421
420 422 When using the python sources, this will be something like:
421 423
422 424 \code
423 > set PYTHON_PATH = c:\yourDir\Python-2.5.1\
424 > set PYTHON_LIB = c:\yourDir\Python-2.5.1\PCbuild8\Win32
425 > set PYTHON_PATH = c:\yourDir\Python-2.6.1\
426 > set PYTHON_LIB = c:\yourDir\Python-2.6.1\PCbuild8\Win32
425 427 \endcode
426 428
427 429 To build all, do the following (after setting the above variables):
General Comments 0
You need to be logged in to leave comments. Login now