Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 756633
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 14, 20262026-05-14T15:16:02+00:00 2026-05-14T15:16:02+00:00

I want to write a C++ application with Qt, but build a prototype first

  • 0

I want to write a C++ application with Qt, but build a prototype first using Python and then gradually replace the Python code with C++.

Is this the right approach, and what tools (bindings, binding generators, IDE) should I use?
Ideally, everything should be available in the Ubuntu repositories so I wouldn’t have to worry about incompatible or old versions and have everything set up with a simple aptitude install.
Is there any comprehensive documentation about this process or do I have to learn every single component, and if yes, which ones?

Right now I have multiple choices to make:
Qt Creator, because of the nice auto completion and Qt integration.
Eclipse, as it offers support for both C++ and Python.
Eric (haven’t used it yet)
Vim

PySide as it’s working with CMake and Boost.Python, so theoretically it will make replacing python code easier.
PyQt as it’s more widely used (more support) and is available as a Debian package.

Edit: As I will have to deploy the program to various computers, the C++-solution would require 1-5 files (the program and some library files if I’m linking it statically), using Python I’d have to build PyQt/PySide/SIP/whatever on every platform and explain how to install Python and everything else.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-14T15:16:03+00:00Added an answer on May 14, 2026 at 3:16 pm

    I want to write a C++ application with Qt, but build a prototype first using Python and then gradually replace the Python code with C++. Is this the right approach?

    That depends on your goals. Having done both, I’d recommend you stay with Python wherever possible and reasonable. Although it takes a bit of discipline, it’s very possible to write extremely large applications in Python. But, as you find hotspots and things that can be better handled in C++, you can certainly port relevant parts to C++.

    Is there any comprehensive documentation about this process or do I have to learn every single component, and if yes, which ones?

    Here’s what I’d recommend for the various pieces:

    EDITOR/IDE: Use any editor/IDE you’re comfortable with, but I’d highly recommend one that supports refactoring. If you’re comfortable with Eclipse, use it. If you want to mainly go the C++ route and you’re not too familiar with any editors, you might be better off with QtCreator. Eric is an extremely good Python IDE with support for refactoring, unless you’re going to be doing lots of C++, take a look at it. Even better, its source code is an example of good PyQt usage and practices.

    PROCESS:

    The quick summary:

    1. Write your application in Python using PyQt
    2. When identified as hotspots, convert decoupled Python classes to C++
    3. Create bindings for those classes using SIP
    4. Import the newly defined libraries in Python in place of their Python counterparts
    5. Enjoy the speed boost

    General details:

    Write the application in Python using PyQt. Be careful to keep a good separation of concerns so that when you need to port pieces to C++ they will be separate from their dependencies. When you finally need to port something to C++, write it in C++/Qt and then create bindings for it using SIP. SIP has a good reference manual on the process, and you have all of PyQt as an example.

    DEPLOYMENT:

    C++ – For many applications the dependencies are sufficiently simple that it’s not too difficult to create an installer using a tool like NullSoft’s Installer or InnoSetup.

    Python/PyQt – PyQt applications are a bit more difficult to install because of the dependency on Python and its dependence on the presence of the Qt libraries. One person documented his efforts on this post at ARSTechnica. py2exe works pretty well on Windows and should work fine. IME, freeze.py, which comes with the Python source, sometimes has problems determining which shared libraries are truly necessary and will sometimes end up creating a binary whose dependencies aren’t present. Py2app can be made to work on Mac OS X.

    But worse, however, is the PyQt/Qt licensing. If you are developing a commercial application, you need to have a commercial PyQt (and Qt) license and make sure to prevent the users from easily modifying the source or otherwise writing code against the PyQt/Qt API because of licensing restrictions. Because of that, the PyQt author created a tool called VendorId (although it has a Python license). Within VendorId is a tool called SIB that can be used to create an executable which depends only on the Python interpreter. But, if you’re going to go this far, you might want to install a custom Python along with your application.

    DISCLAIMER: I haven’t used PySide at all, so I’m not sure how it compares to PyQt. Also, note the following warning on their website:

    PySide is a work in progress and is not yet suited for application development requiring production-level stability.

    But, on a good note, they intend, at least for the initial release to “maintain API compatibility with PyQt.” So, aside from the C++ bindings, you could easily switch between the two later.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.