Qt Creator 10 released

We are happy to announce the release of Qt Creator 10!

General

You can now temporarily drag the progress details out of the way, in addition to hiding them with the button below them.

If you use the Open as Centered Popup option for locator, we fixed that it didn't remember the last search term that you typed into the input field.

C++

We updated the LLVM version that we ship in our packages to LLVM 16. This improves C++ 20 support in Clang, and the interaction between Qt Creator and Clangd. We also enabled the ClangFormat plugin by default, which now is used by default for indentation.

When you rename .ui files or the form defined in a .ui file, Qt Creator now adapts includes and references to them in C++ files of your project automatically.

The new action Tools > C++ > Find Unused Functions helps you find dead code in your projects.

We also added a Call Hierarchy view, which is available for all language servers that support this functionality.

QML

We updated the code model to Qt 6.5. The editor now shows a color preview for corresponding properties as a tool tip, and you can specify an external command like qmlformat to format files, instead of the built-in formatter.

If you install the optional Qt Language Server component from the Qt installer, you can test out the QML language server in Qt Creator by turning on Qt Quick > QML/JS Editing > Use qmlls now.

CMake

We updated the support for CMake presets to preset version 5. This adds for example support for includes, the external strategy for architecture and toolset, and the pathListSep variable.

For the editor there is a new option under CMake > Formatter for using cmake-format or an other command for formatting CMake related files.

We also added a new deploy step that uses cmake --install that you can add to your project configuration in Projects > Run Settings > Add Deploy Step.

Remote Build and Run Targets

We added support for handling the code model remotely via remote Clangd when building on a Docker device. The ClangFormat plugin now also works on remote files in a Docker container.

You can now directly browse the file system on remote targets, for example to select a remote build directory. And the Open Terminal action, for example in the Build Environment settings, open a terminal on the remote system.

More

There have been many more improvements and fixes in Qt Creator 10. The more extensive change log is available for reading in our repository, and also under Help > Change Log (and Qt Creator > Change Log on macOS).

Get Qt Creator 10

The opensource version is available on the Qt download page under "Qt Creator", and you find commercially licensed packages on the Qt Account Portal. Qt Creator 10 is also available as an update in the online installer. Please post issues in our bug tracker. You can also find us on IRC on #qt-creator on irc.libera.chat, and on the Qt Creator mailing list.

You can read the Qt Creator Manual in Qt Creator in the Help mode or access it online in the Qt documentation portal.


Blog Topics:

Comments

Commenting for this post has ended.

A
A. J. Rimmer
1 point
25 months ago

Hooray, call hierarchy! It works a bit unintuitive though. I have to place the cursor on a function declaration/call/first line of definition and open the "Call hierarchy" view or click refresh if it's already opened. No context menu entries - I would expect to see "Show call hierarchy" in a context menu next to "Follow symbol" and friends. Also if clicking on a calling function in the Call hierarchy view shows the first line of the calling function definition, not where in the calling function the function in question is actually called. Is this how it's supposed to work? Anyway, nice addition, thanks for the good work.

D
David Schulz
0 points
25 months ago

Unfortunately I missed to add the action to open the call hierarchy via the context menu in time for the 10.0 release, but now you have something to look forward to for the 11.0 release as it is already in current master branch.

Marius Cirsta
0 points
23 months ago

Thanks for this call hierarchy, for me it's a big improvement. I just wish it looks more like what Eclipse offers, that is to show the actual line where it's called from and take you there. That is really useful for me as it saves me to manually look for the call.

R
Robert
0 points
25 months ago

How can I get static code analysis form clang-tidy and clazy into one output window, so I can go through my analysis results file-by-file without having to switch between multiple output panels?

N
Nikolaus Demmel
0 points
25 months ago

It's a great release. Unfortunately, there is still the highly annoying issue of cmake projects removing run configurations automatically without warning and without a way to prevent it (https://bugreports.qt.io/browse/QTCREATORBUG-28273). This is a real productivity kill if you have a large cmake project with thousands of targets and cmake arguments that control which targets are generated.

C
Cristian Adam
0 points
25 months ago

You can have a CMakeLists.txt.shared file as documented at https://doc.qt.io/qtcreator/creator-sharing-project-settings.html

Then if something happens to the CMakeLists.txt.user file you can still have the values saved in the CMakeLists.txt.shared file.

A more transparent way would be to have a CMakePresets.json file with the run settings configured. But that would be for a future Qt Creator version.

N
Nikolaus Demmel
0 points
25 months ago

Hm... thanks for the pointers. This would help for defining a default set of run configurations to share across developers. But what I'm struggling with is that I'm creating custom run configurations where I keep updating the command line arguments as I'm developing and debugging. Often I have multiple run configurations for the same target with different test cases (sets of command line arguments). I would have to copy the changes I make to the run configurations to .shared (or in the future CMakePresets.json) file all the time. Additionally, those files would then constantly be marked as changed in version control, since my local run configurations make no sense to commit, as they contain local paths, etc.

N
Nikolaus Demmel
0 points
25 months ago

PS: I understand why this default behaviour might makes sense, since by default targets are also added as run configurations automatically. To me a straight-forward way to solve this would be having an option analogous to "Create suitable run configurations automatically", which prevents any run configuration from automatically being removed. It could be called "Remove stale run configurations automatically" and it's fine for me if it's on by default.