Skip to content

jmirabel/PythonQt

 
 

Repository files navigation

PythonQt

Overview

PythonQt is a dynamic Python binding for Qt. It offers an easy way to embed the Python scripting language into your Qt applications. It makes heavy use of the QMetaObject system and thus requires Qt4.x.

This project is a fork of the official PythonQt repository hosted on sourceforge.

It serves as staging area to contain patches that will then be contributed back to the official repository.

Prerequisites

  • CMake 2.8.x
  • Qt 4.6.2 or above

Build instructions

By default, the patched-5 version will be checked out.

git clone git://github.com/jmirabel/PythonQt.git
mkdir PythonQt/_build && cd PythonQt/_build
cmake -DPythonQt_Wrap_QtAll=ON -DPythonQt_Extensions=ON ..
make

Additional configure options are:

  • CMAKE_BUILD_TYPE: Debug, Release, RelWithDebInfo or MinSizeRel
  • PythonQt_DEBUG: Enable/Disable PythonQt debug output
  • PythonQt_Wrap_QtAll: Make all Qt components available in python
  • PythonQt_Wrap_Qt<componentname>: Build PythonQt wrapper associated with <componentname>. Possible <componentname> are gui, network, opengl, sql, uitools, webkit, xml, xmlpatterns.
  • PythonQt_Extensions: Build the extension (requires PythonQt_Wrap_QtAll to be ON)

Available branches

This repository contains 5 branches:

patched-5

  • Based on patched-4 + r403 excluding commit r397
  • List of bug fixes:
  • Fix for memory leaks and cleanup crash
  • List of features:
  • CMake:
  • Fix install rules
  • Fix "_invalid_parameter_noinfo_noreturn" link error
  • PythonQt:
  • Add Qt5 support
  • Add PY3K support

patched-4

  • Based on patched-3 + r245
  • List of features:
  • Add BUILD_TESTING option disabled by default to keep behavior consistent with previous version.
  • Do not exclude enums from wrapping if they are QFlags.
  • Ensure enums added using only Q_FLAGS without corresponding Q_ENUMS are wrapped.

patched-3

patched-2

  • Based on r228
  • List of features:
  • At configuration time, detect the Qt version used and seamlessly compile the appropriate wrappers (Qt 4.8, 4.7 or 4.6).
  • Add method allowing to know if a python error occurred: 5935f29
  • Also add associated method "resetErrorFlag": a386dc60
  • Fix compilation issue on VS2010 when PythonQt Debug build against python Release: 7e1e07f
  • Add option Add PythonQt_Wrap_QtAll: 97df3b0 and 9104fa9
  • Ensure all 4.8 generated wrappers are considered: 654f324
  • Update "PythonQtPythonInclude.h" to avoid build error on recent MacOSX: 7b8ee130 and 47738f9c
  • Update "PythonQtPythonInclude.h" to fix windows build issue when PythonQt Debug build against python Release6366f00
  • Optionally include CTestUseLaunchers: 211440
  • Add SystemExit exception handler. If enabled, the signal "systemExitExceptionRaised" will be emitted. It gives application the opportunity to cleanup and terminate nicely: 3c84463d
  • Add "isatty" function to StdOutRedirect. Needed by some logging frame: 7132dba9
  • Backported:
  • Most of the change specific to patched branch have been backported upstream: r200, r201, r202, r203, r204
  • CMake option PYTHONQT_USE_VTK has been removed (r205), the foreign wrapper mechanism should be used: r206

patched

  • Based on r193
  • List of features:
  • CMake'ified PythonQt project
  • CMake'ified PythonQt/generator project
  • Add dPython.h file, it provides the ability to link against release python with a debug build of your project.
  • Option PYTHONQT_USE_VTK CMake option allowing to teach PythonQt how to deal with vtkObject
  • Stdin can optionally be redirected to a custom callback
  • More details

svn-mirror

  • SVN history imported using git-svn

Contributing

Once you've made your great commits:

  1. Fork PythonQt
  2. Create a topic branch - git checkout -b my_branch
  3. Push to your branch - git push origin my_branch
  4. Create an Issue with a link to your branch
  5. That's it!

Meta

License

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Releases

No releases published

Packages

No packages published

Languages

  • C++ 99.7%
  • Python 0.1%
  • C 0.1%
  • QMake 0.1%
  • CSS 0.0%
  • CMake 0.0%