Eike Ziller

Qt Creator 4.0.0 released

Published Wednesday May 11th, 2016
70 Comments on Qt Creator 4.0.0 released
Posted in Biz Circuit & Dev Loop, Qt, QtCreator, Releases

We are happy to announce the release of Qt Creator 4.0.0. Starting with this release, we are making the Clang static analyzer integration, extended QML profiler features and auto test integration (experimental) available under open source. The previously commercial-only connection editor and path editor of Qt Quick Designer were already open sourced with Qt Creator 3.6.0. Qt Creator is now available under commercial license and GPLv3 (with exceptions). The exceptions ensure that there are no license restrictions on generated code, and that bridging to 3rd party code is still possible. You can read more about this change in the blog post announcing it.

New Theme and QML Flame Graph

New Flat Theme and QML Flame Graph

Users of CMake will find that we improved the workflow for CMake-based projects. CMake is now triggered automatically when necessary, and kit settings like the used Qt version or tool chain are automatically configured. Projects mode now features a UI to change the CMake configuration for a build directory. You can also change the CMake configuration that is common to all projects that use the same kit. Qt Creator will no longer create CMake build directories before the project is built. This makes for a much tidier work environment, especially when users only want to study source code using the CMake build system.

The Clang code model is now automatically used if the (experimental) plugin is turned on. We added customizable configurations for warnings, which you can also specify per project.

On the debugging side we fixed multiple issues that appeared with the new LLDB included in Xcode 7.3 on OS X. You’ll also find more pretty printers for standard types, as well as many bug fixes.

If you wonder where Analyze mode has gone: It was merged with Debug mode. In the new, unified Debug mode you now find the Debugger, Clang Static Analyzer, Memcheck, Callgrind and QML Profiler tools. The QML Profiler adds a new visualization of statistics: The Flamegraph. In this view, the horizontal bars show the amount of time all invocations of a function took, and vertical nesting on top shows which functions were called by which other ones, making for a very concise overview.

In Qt Quick Designer you can now move the canvas by dragging with the left mouse button while the space key is pressed. It adds support for the new Qt Quick Controls 2 and received many bug fixes. Please also head over to the post and video about Qt Quick Designer and Qt Quick Controls 2 that we recently published on our blog.

Qt Creator now also has a new, flat theme, which is based on the concept that Diana presented a year ago. It is default for everyone who hasn’t ever changed the theme in Qt Creator. The old theme is also still available as “Classic” in Tools > Options > Environment > Interface.

You find a more detailed list of improvements in our change log.

The opensource version is available on the Qt download page, and you find commercially licensed packages on the Qt Account Portal. Please post issues in our bug tracker. You can also find us on IRC on #qt-creator on chat.freenode.net, and on the Qt Creator mailing list.

Do you like this? Share it
Share on LinkedInGoogle+Share on FacebookTweet about this on Twitter

Posted in Biz Circuit & Dev Loop, Qt, QtCreator, Releases

70 comments

Malek Khlif says:

Good Jobs 😀

Pavel Geiger says:

This version is unable to detect Microsoft Visual C++ Build Tools compiler

sap says:

weird, i have visual studio 2015 community installed and it detected just fine.

Ernst says:

Visual studio community and build tools it’d a different things, if you don’t plan to work in visual studio and use this for a compiler only, build tools is a preferable option, it brings a minimal set of command line utilities required for the compilation.

Firat says:

Visual Studio 2015 does not install the Visual C++ compiler as default. You need to select and install during installation.

Berk Demirkır says:

It’s stange, I had no problems with older version (3.6.1). Now, I have to downgrade…

Aaron Wilson says:

Awesome! Looks like some great changes!

sap says:

great work guys! that qml profiler looks so sweet, cant wait to try it out. gj

Erkki Salonen says:

Hi!

In case of interested timeline visualization for Qt C++ / QML we implemented http://timetopic.herwoodtechnologies.com/screenshots .

sap says:

wow those look nice, this is exacly the kind of tools we need to get out of ties with visual studio (and by extension windows).

thanks for the tip, ill try it out.

Malek Khlif says:

Cannot deploy on Android with Qt Creator 4.0

andre says:

Can you file a bug report at https://bugreports.qt.io/ , including some details like which version of Android NDK and SDK and which device you use?

Ilya Aleshkov says:

I’m facing the same issue. So I’ve created this report
https://bugreports.qt.io/browse/QTCREATORBUG-16329

Sebastian says:

Great work! It looks promising, but the clang-format tool is unable to find a .clang-format file, unlike the previous version of QtCreator.

sap says:

same problem here and it was already present in QtCreator 4.0 RC

clang-format is not working with beautifier, not exactly a huge problem, just a small annoyance.

theres always the option to run the QtCreator that comes with Qt 5.6 and just alt+tab when you want to format the code.

Eike Ziller Eike Ziller says:

https://bugreports.qt.io/browse/QTCREATORBUG-16239

Should be fixed in latest snapshots.

Niko Nevatie says:

Looks good. Tried the Clang Static Analyzer and got this, though:

:-1: error: Clang Static Analyzer: Invalid executable “C://qt/qtcreator-4.0.0/bin/clang-cl”, stop.

Nikolai says:

Oh, this bug sneaked in after the RC and affects projects with MSVC Kits and an absolute path to the clang executable in the setting.

A possible workaround is described in https://bugreports.qt.io/browse/QTCREATORBUG-16234

Sorry for inconvenience.

HGH says:

The Dark Theme needs more polish. Some elements are not visible. It needs better contrast.
Also in designer the widgets should stay light. The way they turn dark makes them unusable.

I wish you for future versions to take notice how VS does window management: I’d like to be able to drag a window around and place/dock it where I want.

aportale says:

Can you point out which elements lack contrast? When implementing the “Flat” theme, we tried to keep the “Dark” theme intact, or to even improve it in parts. However, suggestions are welcome 🙂

HGH says:

Qt Creator does not detect clang nor lldb… nor gdb in Android… is that normal?

suy says:

Congrats on the release.

Is a decision made on whether the help mode will be built with WebEngine support for official binaries? I know it will bump the size of Creator download quite a bit, but the QTextBrowser-based one is a tad more limited, isn’t it?

After the improvements to the docs, it’s bearable, but the webkit-based one was better on my eyes. 🙂

Markus Franke says:

I agree – the Help look really bad and is not really good for reading.

Alan says:

Indeed, on OS X (at least and since Qt Creator 3.6.0), the Qt 5.4.2 help has next to no formatting. That of Qt 5.6 is better, but in both cases to increase the size of the font results in only the titles to increase. The text itself still uses a small font size, which on a big screen makes it difficult to read.

Eike Ziller Eike Ziller says:

“But in both cases to increase the size of the font results in only the titles to increase.”

There is a fix for that in the documentation of Qt 5.6.1, and also a bug report open for QTextBrowser for other documentation (QTBUG-52751).

Radek says:

How can I specify CMake argument? In the old QtCreator there was field – Projects->Build->CMake arguments where I would write: “-DCMAKE_TOOLCHAIN_FILE=/workspace/myToolchain.cmake” and everything would work, but can’t find a way to do it in new version…

Cristian says:

In the Kits page you have a special CMake entry and you can pass VARIABLE=VALUE entries, one per line.

Radek says:

Thanks, it works now!

Knut Tidemann says:

This is not really a viable solution, as project dependent variables would have to be changed every time a project is opened.

andre says:

You can set up project specific kits as clones of a base kit that only differs in name and whatever cmake extras you need.

Alexey LCard says:

You may have many projects with different configuration and create kit for each configuration per project it’s very bad solution… There must be way to specify CMAKE variables for build configuration…

Younoussa says:

This is a minus in the flexibility we had with Versions 3.6.x
One kit clone per project is quite rigid compared to having the possibility to pass variables as command line arguments in 3.6.x

aportale says:

We are taking notes of the feeback regarding the CMake workflow. In fact we are positively surprised about the amount of feedback. It seems that Qt Creator + CMake is used quite much.
The point with the project specific CMake variables seems to be the most request items so far. I am sure we will try to re-introduce an equivalent option in Qt Creator 4.1. Tobias will certainly give feedback on this after his short vacation 🙂

Younoussa says:

Thanks!
There are more issues with CMake in Qt Creator 4.0, I even found some regressions such as: QTCREATORBUG-16278
We are glad about the gui and all but in my opinion that is not why most use Qt Creator.

As for CMake flow, the one in 3.6.x was quite good even with less gui, it was flexible and did the job.
CMake flow in Qt creator also allows non Qt developers to use Qt creator as IDE, of course they could use qmake based projects, but then they would have to port their projects from CMake to qmake just to adopt a new IDE.
There are also many CMake Qt projects, especially for embedded where the Qt projects are included in bigger projects as sub projects and built using CMake

What happened to the previous CMake project parser? In 4.0 unless one chooses the CodeBlocks generators, Qt Creator is unable to parse the project.

John says:

I don’t seem to find a flat dark there, only a light one, is that right?

Eike Ziller Eike Ziller says:

Actually the current “Flat” theme is neither dark nor light, it follows the “light with dark tool bars” pattern that the classic theme has. Light and dark variants of the new theme are on the TODO list though.

TriNity says:

Using variables in the working directory doesn’t work anymore:

Cannot change to working directory “/Qt Workspace/Builds/ComputerGraphics/build-%{Kit:FileSystemName}/%{CurrentBuild:Type}”

It worked flawless in 3.6.1 🙁

Eike Ziller Eike Ziller says:

Please create a bugreport on https://bugreports.qt.io

Jose Fernandez says:

Great work!
It looks sweet but I am unable to pass CMake variables trough Qt-creator though. Before I could do so by clicking “Run CMake” on the project name. That seems to be disabled now and in the “Projects” tab I can see the CMake variables and edit them but I cannot add/remove variables. Thanks!

Adrien Hamelin says:

I have the same problem, an “add” button would be really helpful.

Mitch Mitch says:

The flat design looks so nice!

A tip for those on high DPI displays – run Creator like this:

QT_AUTO_SCREEN_SCALE_FACTOR=1 /path/to/qtcreator

I’m using this on Ubuntu 15.10 with a 4k monitor and it looks pretty good (some issues mentioned here: https://bugreports.qt.io/browse/QTCREATORBUG-16231).

Eike Ziller Eike Ziller says:

(the auto screen scale factor variable should not be needed on Windows an OS X)

Adrien Hamelin says:

It feels great but for two things. I would like to be able to add CMake variables in the “project” tab and i would like to run my build in a multi-threaded way. Before i could add “-j8” to the make option, which is not possible anymore. And when i say i want to generate for “codeblocks-ninja” CMake fails.

Otherwise very good work!

Adrien Hamelin says:

And also, how do i modify Clang static analyzer options? It is by default in C++11, and my code is 14.

Antoine Poliakov says:

I also faced this issue. Reported here: https://bugreports.qt.io/browse/QTCREATORBUG-16290

Tobias Hunger Tobias Hunger says:

There are several options to pass flags to make via cmake –build:

The most comfortable is to just set MAKEFLAGS=-j8 before starting Qt Creator. This effects *all* make calls for all buildsystems in all projects.

You can also add -j8 to the “Tools arguments” of the cmake build step of your project. These flags will be passed on to the “real” build system by cmake.

Reinhard Katzmann says:

I tried to add “-GUnix Makefiles” as I already had that option in the old cmake run (before switching to the new Qt Creator). The original generator option was not set. Now I get an error that Ninja cannot be used because it is set to “Unix Makefiles” (obviously). My Tools option is not even included in the command line:

Running “/usr/bin/cmake /path/to/project/source ‘-GCodeBlocks – Ninja’ -DCMAKE_BUILD_TYPE:STRING=Debug -DCMAKE_CXX_COMPILER:STRING=/usr/bin/clang++ -DQT_QMAKE_EXECUTABLE:STRING=/path/to/Qt/5.6/gcc_64/bin/qmake” in /path/to/project/build.

CMake Error: Error: generator : Ninja

Also why there is no preview button in this comment part of the blog ?

Reinhard Katzmann says:

Two answer my own question:

The new Creator manages everything via kits. So you need to create a new kit only for Unix Makefiles (or better Codeblocks Unix Makefiles).

Unfortunately these are not automatically generated when ninja is found in the system.

Furkan Üzümcü says:

You can add `CMAKE_MAKE_PROGRAM:STRING=E:/Qt/Tools/QtCreator/bin/jom.exe` to Cmake confgurations or use `set(CMAKE_MAKE_PROGRAM “E:/Qt/Tools/QtCreator/bin/jom.exe” CACHE STRING “Set make program to jom” FORCE)` in your CMakeLists.txt file to set the make program to jom and then you can use -j 8

Post: http://zmc.space/2016/using-jom-qt-creator-4-cmake/

Knut Tidemann says:

I’m having issues with CMake and toolchain files. It seems that Qt Creator invokes CMake in such a way that -rdynamic is added to the linker line, which is not supported by my bare metal arm toolchain.

This worked fine in Qt Creator 3. Looking at CMakeOutput.log, I can see that it thinks it should build for the host system.

The toolchain file worked great under Qt Creator 3 and still works from the command line. I have removed the stock CMake arguments from the kit page and added the toolchain. The right compiler is actually used, but CMake gets confused somewhere.

Glenn Ergeerts says:

I’m having the same problem when using creator for cross compiling for a ARM Cortex M3 target using gcc-arm-embedded.
I used to create a cmake cache on the command line and then point creator to this directory which worked perfectly in the previous version. Version 4 seems to break this workflow and it deletes the cache which results in the wrong compiler being used as can be seen in the output below.
Any advice for a possible workaround which would allow me to use creator again for this use case is much appreciated.

You have changed variables that require your cache to be deleted.
Configure will be re-run and you may have to reset some variables.
The following variables have changed:
CMAKE_CXX_COMPILER

jason says:

I for one, welcome our new flat-themed overlords.

Matias N. Goldberg says:

Thanks for this release!!!

I am trying it right now. Can’t give you much feedback until I’ve tried it well.

There’s one thing I need to say though: On Ubuntu 14.04; the new theme is hard to read.
I’m talking light green text over white, white text over light grey.

I switched to the Classic theme and it’s great. Though after switching to classic I can’t try any other theme because the option disappeared. I’m not really complaining because I love the Classic theme (and I hope it doesn’t disappear!); but looks like a bug.

Matias N. Goldberg says:

Ahh nevermind that. It appears the .desktop file got somehow confused and it ran an older version of Qt Creator after switching to Classic theme. Don’t know how is that happening.

I ran QtCreator 4 from command line to make sure the right one is launched. There is no bug (other than the Flat theme having readability problems)

aportale says:

“Light green text over white, white text over light grey” sounds bad. We want all themes to be readable, and especially the new default theme.

Since you are about to create bug reports, could you create one for this issue, with screenshot? 🙂

Matias N. Goldberg says:

OK: Feedback time:

https://bugreports.qt.io/browse/QTCREATORBUG-16144

I don’t understand why it was closed. It is a valid raised concern. You can’t add variables unless you create a whole new kit (wtf???). There is an Edit and a Reset button, but no “Add” button and “Remove” options.

Either add “Add” and “Remove” options, or better yet… add an extra line for passing user-defined command line arguments (which is *very* useful when pasting a lot pre-determined settings for creating a specific build) like the old CMake wizard had.

Another problem is that there is no filter. QtCreator is showing literally hundreds of CMake options with no “search” filter to ease searching for a variable (like cmake-gui has).

Shall I create two tickets for these?

Cristian says:

Regarding filtering, have you tried pressing Ctrl+F?

Tobias Hunger Tobias Hunger says:

Creator uses the exact same data as the other cmake UIs. My assumption was that critical pieces of configuration will of any cmake project will be reflected in the UIs.

Apparently that assumption is wrong, which I find surprising. I had expected cmake projects to be coded in a more user friendly way. After all it is just a flag to SET to have settings show up in the UI.

So I think I will have to add an “Add” button.

I am not so sure about a “Remove” button. That will probably not work anyway as most values just will be regenerated with default values by the next cmake run.

A batch edit mode for settings is something Creator should have though. I have that on my ToDo list.

The CMake settings are already searchable: Ctrl-F triggers the search field, like it does for most other widgets in Creator.

Pseudonymous Bosch says:

Is it possible to somehow turn *off* the new auto-run-CMake thing? It *immediately* gets confused when doing e.g. interactive rebase in the project directory or switching between (very different) branches.

I was fine with having to run it manually once in a while. The fact that it gets confused when doing rebasing (etc.) seems like a regression to me.

Simon Schmeißer says:

Is it possible to disable any CMake cache modifications? I develop code for the ROS ecosystem using Catkin tools. When I create such a catkin workspace it will contain many individual CMake project files. If I open one of them in QtCreator and set the build dir to the one created by catkin before it used to integrate seamlessly. Now with QtCreator 4.0.0 it will remove some necessary CMakeCache entries, leading to compiled binaries being put in wrong places. See https://github.com/catkin/catkin_tools/issues/369 for log output and longer descriptions.

I will open a bug report soon if necessary.

Removing all CMakeOverrides in Kit settings does not seem to work, as it will always add -DCMAKE_CXX_COMPILER:STRING=/usr/bin/g++ -DQT_QMAKE_EXECUTABLE:STRING=/usr/lib/x86_64-linux-gnu/qt5/bin/qmake

Simon Schmeißer says:

As a workaround it is sufficient to set the CMAKE_CXX_COMPILER variable before opening the project in QtCreator:

catkin clean –build
catkin build –cmake-args -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_CXX_COMPILER:STRING=/usr/bin/g++
open QtCreator, select CMakeLists.txt of your package, select ws/build/package as build dir, enjoy 🙂

cemal demir says:

auto complete does not work propoerly. ctrl + space usually does not suggest word line to me? what is wrong?

tro says:

Here is a video I recorded to show this problem: https://www.youtube.com/watch?v=-pUAEo2IAhI

Bert says:

This is exactly how the clang autocompletion behaves for me, it’s way too slow for productive work. Please compare the first two sections of the video with the last one, the difference is striking!

Is there anyone for who the clang autocompletion works faster than shown in the video? If not, I don’t understand how anyone can use it. I’m hesitant to open a bug report, as so many people seem pleased with clang as it is right now, but it doesn’t make sense to me.

Eike Ziller Eike Ziller says:

I solely work with the Clang code model, and don’t have any performance issues with it (OS X, Linux). It is a tiny bit slower than the built-in, but still almost instantaneous.

Code completion with Clang code model is known to be much slower on Windows, and especially first time in a file, and especially when there are headers like windows.h are involved 😉

If you have performance issues with Clang code model, please run Qt Creator with QT_LOGGING_RULES=qtc.clang*=true , create a bug report and attach the output there. (You find details on how to set that and how to get the output here: https://wiki.qt.io/Qt_Creator_Clang_Code_Model#Debugging)

kalin says:

I can’t open qbs projects with qt creator 4.0
I get this message in console:
line 2: 3050 Segmentation fault (core dumped) QT_LOGGING_TO_CONSOLE=1 qtcreator-bin $@
I use linux (manjaro distro)

kalin says:

I get segfault on qbs project.
What to do ?

Roland Wolf says:

Can we have a mode where users can setup a build on command line with CMake? This used to work with Creator 3. This way multiple build configurations were possible with one kit. Creator 3 did not reconfigure existing projects. The compiler and Qt version in the kit did not match the build project but this is no problem. Creator 4 pushes information from the Kit to the build directory even if the build is already working. This makes it hard to configure projects on command line and have a variety of build configurations.

Manuel Schneider says:

Kudos!

Neirbo says:

Is there a way to disable the automatic cmake updating thing. This is painful when your project is spread among multiple repo, I run my update scripts and qtcreator starts updating even though the update is not finished, and then doesn’t detect changes that happened in other repos …

Rolling back to 3 for now

Commenting closed.

Get started today with Qt Download now