diff --git a/src/PythonQtDoc.h b/src/PythonQtDoc.h index f6fa313..6ac8d60 100644 --- a/src/PythonQtDoc.h +++ b/src/PythonQtDoc.h @@ -66,31 +66,12 @@ Image Processing and Visualization platform MeVisLab (http://www.mevislab.de) scriptable from Python. + \section Download PythonQt is hosted on SourceForge at http://sourceforge.net/projects/pythonqt , you can access it via SVN or download a tarball. - \section Licensing - - PythonQt is distributed under the LGPL license, so it pairs well with the LGPL of the Qt 4.5 release and allows - to be used in commercial applications when following the LGPL 2.1 obligations. - - \section LicensingWrapper Licensing of Wrapper Generator - - The build system of PythonQt makes use of a modified version of the LGPL'ed QtScript generator, - located in the "generator" directory. - - See http://qt.gitorious.org/qt-labs/qtscriptgenerator for details on the original project. - Thanks a lot to the QtJambi guys and the QtScript Generator project for the C++ parser and - Qt typesystem files! - - The PythonQt wrappers generated by the generator located in the "generated_cpp" directory are free to be used without any licensing restrictions. - - The generated wrappers are pre-generated and checked-in for Qt 4.6.1, so you only need to build and run the - generator when you want to build additional wrappers or you want to upgrade/downgrade to another Qt version. - You may use the generator to generate C++ bindings for your own C++ classes (e.g., to make them inheritable in Python), - , but this is currently not documented and involves creating your own typesystem files (although the Qt Jambi examples might help you). \section Features @@ -136,8 +117,29 @@ - Any Qt class that has virtual methods can be easily derived from Python and the virtual methods can be reimplemented in Python (this feature is considered experimental!) - Polymorphic downcasting on QEvent, QGraphicsItem, QStyleOption, ... - Multiple inheritance support (e.g., QGraphicsTextItem is a QObject AND a QGraphicsItem, PythonQt will handle this well) + - \section Comparision Comparision with PyQt/PySide + \section Licensing + + PythonQt is distributed under the LGPL license, so it pairs well with the LGPL of the Qt 4.5 release and allows + to be used in commercial applications when following the LGPL 2.1 obligations. + + The build system of PythonQt makes use of a modified version of the LGPL'ed QtScript generator, + located in the "generator" directory. + + See http://qt.gitorious.org/qt-labs/qtscriptgenerator for details on the original project. + Thanks a lot to the QtJambi guys and the QtScript Generator project for the C++ parser and + Qt typesystem files! + + The PythonQt wrappers generated by the generator located in the "generated_cpp" directory are free to be used without any licensing restrictions. + + The generated wrappers are pre-generated and checked-in for Qt 4.6.1, so you only need to build and run the + generator when you want to build additional wrappers or you want to upgrade/downgrade to another Qt version. + You may use the generator to generate C++ bindings for your own C++ classes (e.g., to make them inheritable in Python), + but this is currently not documented and involves creating your own typesystem files (although the Qt Jambi examples might help you). + + + \section Comparison Comparison with PyQt/PySide - 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 - 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 @@ longinteger ulong,longlong,ulonglonglong QStringunicode string - QByteArraystr + QByteArrayQByteArray wrapper char*str QStringListtuple of unicode strings QVariantListtuple of objects @@ -182,17 +184,17 @@ QSize, QRect and all other standard Qt QVariantsvariant wrapper that supports complete API of the respective Qt classes OwnRegisteredMetaTypeC++ wrapper, optionally with additional information/wrapping provided by registerCPPClass() QListconverts to a list of CPP wrappers - EnumTypeinteger (all enums that are known via the moc and the Qt namespace are supported) + QVectorconverts to a list of CPP wrappers + EnumTypeEnum wrapper derived from python integer QObject (and derived classes)QObject wrapper C++ objectCPP wrapper, either wrapped via PythonQtCppWrapperFactory or just decorated with decorators PyObjectPyObject - PyObject is passed as simple pointer, which allows to pass/return any Python Object directly to/from - a Qt slot. + PyObject is passed as direct pointer, which allows to pass/return any Python object directly to/from + a Qt slot that uses PyObject* as its argument/return value. QVariants are mapped recursively as given above, e.g. a dictionary can contain lists of dictionaries of doubles. - For example a QVariant of type "String" is mapped to a python unicode string. All Qt QVariant types are implemented, PythonQt supports the complete Qt API for these object. \section QObject QObject Wrapping @@ -413,15 +415,15 @@ the python2x.[lib | dll | so | dynlib]. When using the prebuild Python installer, this will be: \code - > set PYTHON_PATH = c:\Python25 - > set PYTHON_LIB = c:\Python25\libs + > set PYTHON_PATH = c:\Python26 + > set PYTHON_LIB = c:\Python26\libs \endcode When using the python sources, this will be something like: \code - > set PYTHON_PATH = c:\yourDir\Python-2.5.1\ - > set PYTHON_LIB = c:\yourDir\Python-2.5.1\PCbuild8\Win32 + > set PYTHON_PATH = c:\yourDir\Python-2.6.1\ + > set PYTHON_LIB = c:\yourDir\Python-2.6.1\PCbuild8\Win32 \endcode To build all, do the following (after setting the above variables):