Developing Python applications in Qt Creator
I've developed a few Qt projects in C++ using Qt Creator in the past, but now I want to experiment with the Python implementation of Qt. I discovered that Qt Creator 2.8 and higher support Python, but I haven't been able to figure out how to create a Qt application in Python with it so far. Online documentation about it appears to be scarce.
How do I set up such a project in Qt Creator? Ideally I'm looking for a simple "Hello World" project that I can open in Qt Creator and use that as a starting point to build something.
Solution 1:
Currently, Qt Creator
allows you to create Python files (not projects) and run them. It also has syntax highlighting, but it lacks more complex features such as autocomplete.
Running scripts requires some configuration (I used this tutorial). Open Qt Creator
and go to Tools->Options->Environment->External Tools
. Click Add->Add category
and create a new category (for example, Python
). Then, select the created category and click Add->Add Tool
to create a new tool - RunPy
for example. Select the created tool and fill the fields on the right:
- Description - any value
- Executable - path to
python.exe
- Arguments -
%{CurrentDocument:FilePath}
- Working directory -
%{CurrentDocument:Path}
- Environment -
QT_LOGGING_TO_CONSOLE=1
You get something like this:
Now, go to File->New File or Project->Python
and select Python source file
. To run the created script: Tools->External->Python->RunPy
.
You can also add pyuic to it the same way:
Click again on the Add->Add Tool
button to create a new tool - PyUic
now. Select it again and fill the fields on the right:
- Description - any value
- Executable - path to
pyuic5
- Arguments -
-o UI%{CurrentDocument:FileBaseName}.py -x %{CurrentDocument:FilePath}
- Working directory -
%{CurrentDocument:Path}
- Environment -
QT_LOGGING_TO_CONSOLE=1
Then you should have PyUic connected as well.
Solution 2:
Thanks for this, it helped enormously.
I set up a build and run section of a new kit for python, using your instructions, which seems to work quite well.
Here are the build settings:
Here are the run settings:
note that I have /usr/bin/python as a link to /usr/bin/python3.6
Here are the project file settings:
The only thing that is necessary is to go into tools -> options -> build and run and unselect 'always build project before deploying it' and 'always deploy project before running it'.
Once you have designed a form, you can then click build to create the UI.py file and run the currently selected python source file by clicking run.
For PyQt noobs like myself, I found the following resource to be particularly helpful at getting started... (although I am on linux rather than windows)...
http://projects.skylogic.ca/blog/how-to-install-pyqt5-and-build-your-first-gui-in-python-3-4/
edit.
I also added pdb - the python debugger
which you can then select by clicking the button above the run button:
before clicking run. You can set breakpoints in your code using the following snippet, where I have added DEBUG = 1 to the system environment in the run settings of the pdb run and DEBUG = 0 to the run python env:
if (QtCore.QProcessEnvironment.systemEnvironment().value("DEBUG") == "1"):
import pdb; QtCore.pyqtRemoveInputHook(); pdb.set_trace()