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 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.




Good Jobs 😀
This version is unable to detect Microsoft Visual C++ Build Tools compiler
weird, i have visual studio 2015 community installed and it detected just fine.
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.
Visual Studio 2015 does not install the Visual C++ compiler as default. You need to select and install during installation.
It’s stange, I had no problems with older version (3.6.1). Now, I have to downgrade…
Awesome! Looks like some great changes!
great work guys! that qml profiler looks so sweet, cant wait to try it out. gj
Hi!
In case of interested timeline visualization for Qt C++ / QML we implemented http://timetopic.herwoodtechnologies.com/screenshots .
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.
Cannot deploy on Android with Qt Creator 4.0
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?
I’m facing the same issue. So I’ve created this report
https://bugreports.qt.io/browse/QTCREATORBUG-16329
Great work! It looks promising, but the clang-format tool is unable to find a .clang-format file, unlike the previous version of QtCreator.
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.
https://bugreports.qt.io/browse/QTCREATORBUG-16239
Should be fixed in latest snapshots.
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.
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.
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.
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 🙂
Qt Creator does not detect clang nor lldb… nor gdb in Android… is that normal?
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. 🙂
I agree – the Help look really bad and is not really good for reading.
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.
“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).
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…
In the Kits page you have a special CMake entry and you can pass VARIABLE=VALUE entries, one per line.
Thanks, it works now!
This is not really a viable solution, as project dependent variables would have to be changed every time a project is opened.
You can set up project specific kits as clones of a base kit that only differs in name and whatever cmake extras you need.
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…
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
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 🙂
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.
I don’t seem to find a flat dark there, only a light one, is that right?
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.
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 🙁
Please create a bugreport on https://bugreports.qt.io
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!
I have the same problem, an “add” button would be really helpful.
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).
(the auto screen scale factor variable should not be needed on Windows an OS X)
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!
And also, how do i modify Clang static analyzer options? It is by default in C++11, and my code is 14.
I also faced this issue. Reported here: https://bugreports.qt.io/browse/QTCREATORBUG-16290
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.
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 ?
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.
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/
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.
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
I for one, welcome our new flat-themed overlords.
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.
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)
“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? 🙂
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?
Regarding filtering, have you tried pressing Ctrl+F?
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.
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.
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
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 🙂
auto complete does not work propoerly. ctrl + space usually does not suggest word line to me? what is wrong?
Here is a video I recorded to show this problem: https://www.youtube.com/watch?v=-pUAEo2IAhI
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.
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)
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)
I get segfault on qbs project.
What to do ?
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.
Kudos!
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