On 01/10/13 14:22, John Fabiani wrote:
On 09/30/2013 06:11 PM, John Fabiani wrote:



-------- Original Message --------
Subject:        Re: [PyQt] c++ app integrate PyQt
Date:   Mon, 30 Sep 2013 17:51:28 -0700
From:   John Fabiani <jo...@jfcomputer.com>
To:     Matt Newell <newe...@blur.com>



On 09/30/2013 05:24 PM, Matt Newell wrote:
> On Monday, September 30, 2013 04:51:24 PM John Fabiani wrote:
>> Hi,
>> I have an existing Qt C++ app (Qt5.1.1).  Is it possible to integrate
>> PyQt into the project.  I'd like the PyQt to have access to some of the
>> C++ functions, C++ classes, but I want to write frames,windows, all the
>> controls in PyQt including accessing the database.  Most important I
>> want only one app loop.  I was able in get PythonQt working but realized
>> that it was a lot of work to get it to do what I want - that is to
>> create a complete sub-program written in python.
>>
>>
>> Any hints or links will be helpful.
>>
>> Thankis in advance,
>>
>>
>> Johnf
>
> Yes it's possible.  You have to wrap any c++ classes you want to use from
> python using sip.  Then you need to embed python in your app, or rewrite the
> main part of the application in python.
>
> You'll want to first split your app into a library so you can test your python
> bindings from a regular python script or cmd interpreter.  Start with one
> class to get your feet wet and go from there.
>
> Matt
That sounds encouraging.  But it lacks a little detail - like how does
one embed python (PyQt) into a C++ app.  The sip I sort of understand
and it is doable.  I only need a few C++ classes and that makes sense.
But I don't have a clue how or where to start on embeding PyQt.  Does
someone have an example or a link explaining the details.

Johnf
Write the right phrase in a google search and you find things.  But I wonder if
this the best solution?  It's also old.
http://acaciaecho.wordpress.com/2011/08/15/hybridqtwithpyqt/

Anyone, have opinion?

Johnf

From your spec (writing all of the GUI in PyQt) it sounds like you should be writing your C++ components as Python extension modules rather than embedding a Python interpreter in your app.

There are several ways to do that: SIP, SWIG, Boost.Python.

Also if you do this then your app will play nicely with packaging tools like Py2exe and PyInstaller. If you have .ui files you should be able to reuse them with minimal or no changes.

Glenn

_______________________________________________
PyQt mailing list    PyQt@riverbankcomputing.com
http://www.riverbankcomputing.com/mailman/listinfo/pyqt

Reply via email to