Working with QtQuick and Python on a real-life Robotics Project

By Alexander Rössler

Elevator Pitch

I have learned many things about creating QtQuick applications with Python working on a graphical programming environment for a new industrial robot. In this talk, I’m going to elaborate on my experience, including practical topics such as development workflow and testing, using real-life examples.

Description

In my talk, I will describe my experience working on a real-life project with QtQuick and Python. The project I’m talking about is a graphical programming environment for a new industrial robot, which will be released end of this year. My customer chooses Python over C++ for a couple of reasons which I will explain in my talk.

I have experience working with Qt for over a decade. Until last year, I have mostly worked with Qt C++, although I’m a passionate Python programmer for many years. Since I had many objections choosing Python over C++ when working Qt, I will express them in my talk and explain my findings in working on a real-life Python Qt project for over a year.

Besides talking about my findings working with Python and Qt, I will also elaborate on practical and relevant topics for the Python Qt programmer with real-life examples. These topics include:

  • Tools, workflow and lifecycle of a Python Qt project.
  • A way to structure a mixed Python and Qt QML project.
  • How to do unit and GUI testing for Qt application with pytest.
  • Clean coding practices for Python Qt applications.
  • Debugging mixed Python and C++ applications.

In the year I intensively worked with Python and Qt, especially QtQuick, I not only encountered flowers and roses, but I also found many snares. Therefore, a part of my presentation is dedicated to informing you about them.

Attending this talk is highly recommended if you are Qt C++ developer considering to test-drive Qt Python, if you are Python developer interested in Qt or if you are just curious about the robot HMI project I use as a basis for the talk.

Feel free to check out my articles about Qt, Python, and robotics on my blog: https://machinekoder.com/

Robot UI Screenshot 1 Robot UI Screenshot 2

The robot UI bases on ROS and the RViz QtQuick branch.

Notes

I have more than a decade of experience working with Qt, mostly with Qt C++. I switched to Python and Qt for most of the projects, both open-source and commercial in 2018. Therefore, I know both Python and C++, and this allows me to explain the differences when working with Python and Qt compared to C++ and Qt.

Considering the difficulties I faced during development of the robot UI, for example hitting the maximum allowed registered QML components limit, the project I will use reference for the talk is probably the most complex Python and QtQuick UI application out there.

During the last year I have published a few articles about working with Python and Qt on my blog: