New Qt based GUI for RTKLib

Guest Introduction:

I’m very happy to share the first ever guest post on rtklibexplorer, written by Jens Reimann. Jens has been working on RTKLIB for many years, with a particular focus on the Qt-based GUI for Linux. As he describes below, he originally started this work in 2016, at a time when the RTKLIB codebase was evolving rapidly and keeping GUI implementations in sync was a constant challenge.

Over the years, Jens has maintained and evolved a modern Qt GUI that expanded RTKLIB from a primarily Windows-focused tool to one that is fully usable on Linux as well. His work has resulted in the latest version, available now in the rtklibexplorer branch of RTKLIB, which is more complete, better integrated, and more usable than ever.

This post is the first guest contribution to rtklibexplorer, and I’d very much like to encourage more guest posts from others in the RTKLIB community. Whether you have developed an open-source library, used RTKLIB in an interesting application, or explored another topic of interest to the RTKLIB community, I encourage you to share it. If interested, you can contact me at rtklibexplorer@gmail.com.

With that, I’ll turn things over to Jens to describe the background and current state of the Qt GUI.

Overview

Most rtklib users are probably familiar with the Windows GUI created by Tomoji, the original author of rtklib. However, few people know that there is also a GUI based on the Qt toolkit (http://www.qt.io) which supports not only Windows, but also Linux (and generally also MacOS, Android and other platforms).

Analysing RTKLib solutions under Linux using the Qt version of RTKPlot.

I (Jens) started working on this GUI project back in 2016 with the aim of creating a working GUI for Linux. It was later integrated into Tomoji’s codebase as well. Unfortunately, the rtklib codebase was changing rapidly at that time, so
it often took a while for GUI updates to be merged into the official codebase. This made the code unusable for most of the time. Only the Qt GUI in my own branch (https://github.com/JensReimann/RTKLIB) remained up to date and usable.

For some time now, Tim (the author of this blog), Andre and I have been working together to continue the development of rtklib. I am responsible for the modern Qt GUI which is now in better shape than ever.

Screenshot of the Qt version of RTKNavi.

What to expect?

The rtklib Qt GUI has some additional features not found in the standard Windows GUI:

  • modern user interface
  • auto-completion of paths
    • tooltips that explain the meaning of various inputs (previously only found in the official documentation)
  • strict validation of user input for supported values (including units for most inputs).
  • platform independence, currently supporting Windows and Linux.

So, whether you’re a Linux user looking for an rtklib GUI, a Windows user eager to try out the GUI or a Mac user keen to help make the GUI work on your system, you’re more than welcome!

Improved options dialog for the Qt version of RTKNavi and RTKPost.

How to start?

The source code is already in the main branch of the rtklibexplorer RTKLIB repository (https://github.com/rtklibexplorer/RTKLIB). If you are using CMake and all the necessary requirements (see readme.txt) are installed, the GUI code will be built automatically. CMake may already be supported by your favourite IDE, too.

In order to compile the Qt GUI, you will need to install the Qt libraries and header files from https://www.qt.io/. Note that there is a free, open-source version of Qt available for Windows, which is a bit hidden. On Linux, simply install the Qt development packages from your distribution’s repository. Qt is most likely already installed, as many applications – including the KDE desktop environment – are based on it.

We will also release Windows installers with pre-compiled binaries from time to time. Pre-built Linux packages for some distributions are already available at the OpenSuSE Build Service (https://build.opensuse.org/package/show/home:ReimannJens/rtklib-qt). Support in packaging rtklib is also appreciated.

Most importantly, please provide feedback! Report any bugs you find and enjoy using this modern GUI.

Design a site like this with WordPress.com
Get started