Eike Ziller

Qt Creator 4.7.0 released

Published Wednesday July 18th, 2018
73 Comments on Qt Creator 4.7.0 released
Posted in Biz Circuit & Dev Loop, Qt, QtCreator, Releases

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

C++ Support

We decided that it is time to turn the Clang code model on by default. It made huge progress during the last releases, and at some point we need to do this switch. The built-in model cannot keep up with the developments in the C++ language, nor with the development of the available tooling around it. We nowadays regularly close bug reports with the comment “works with Clang code model”. Also, the Clang code model provides much better information about issues in code without going through the edit-compile-analyze cycle explicitly. Please also have a look at Nikolai’s blog post on the Clang code model and the history of C/C++ support in Qt Creator.

There can be situations where the built-in model still works better for you than the Clang code model, and you continue to have the option to use it instead, by disabling the ClangCodeModel plugin. The global symbol index is also still created with the built-in model.

Project wide diagnostics and fixits in Qt Creator by clang-tidy and clazy

We upgraded the Clang code model to Clang 6.0. It now provides the information for the overview of the current document, which is used for the symbols dropdown, outline pane and “.” locator filter. You also have more freedom in deciding which Clang-Tidy and Clazy checks you want to run while editing, and have the option to run checks over your whole code base through a new tool in Debug mode (Analyze > Clang-Tidy and Clazy). The warnings and errors from the code model are now also optionally shown in the Issues pane.

Test Integration

If your text cursor in the C++ editor is currently inside a test function, you can directly run that individual test with the new Run Test Under Cursor action. The test integration now also marks the location of failed tests in the editor. For Google Test we added support for filtering.

Windows Hosts

On Windows we improved the scanning for MSVC compilers, which previously could block Qt Creator. We also fixed an issue which could lead to short term freezes while Qt Creator was listening to the global, shared Windows debug stream. And saving files on network drives should work again in all configurations.

Other Improvements

The kit options are one of the most important settings that you might need to adapt for your projects in Qt Creator. So we put them in their own top-level entry in the preferences dialog, which is also the very first one in the list.

If you have a HiDPI screen on Windows or Linux, you can now easily choose if you want Qt’s automatic scaling or not, by enabling or disabling the new option in Environment > Interface.

The File System view got new options for showing folders on top as opposed to integrated into the alphabetic sorting, and for turning off the synchronization of the base folder with the current document’s project. You can also create new folders directly in the File System view now.

There have been many more improvements and fixes. Please refer to our changes file for a more comprehensive list.

Get Qt Creator 4.7.0

The opensource version is available on the Qt download page, and you find commercially licensed packages on the Qt Account Portal. Qt Creator 4.7.0 is also available through an update in the online installer. 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

73 comments

Kromain says:

This looks like a great release, and it’ll fix all my gripes with the windows version, nice job!

Aleksey says:

Eike, HiDPI option has no effect: issue still there – https://bugreports.qt.io/browse/QTCREATORBUG-18631 – small check/radio buttons, small text in left panel, etc.

Eike Ziller Eike Ziller says:

Well, that option doesn’t fix bugs ;), it just enables QT_AUTO_SCREEN_SCALE_FACTOR.

Piotr says:

I have been using QtC 4.6-4.7, on Ubuntu 18, on my 13” laptop with 4k display and QT_SCALE_FACTOR solved all of my scaling issues. Am I mistaken?

Aleksey says:

Black and white icons in “Options” are terrible. How to return colorful?

Vincent says:

Will ClangRefactoring come back in Qt Creator 4.8?

HGH says:

The code model doesn’t support C++17 still.

HGH says:

Also CMake is autodetected on Windows but I get: :-1: error: A CMake tool must be set up for building. Configure a CMake tool in the kit options.

HGH says:

This actually happens if I edit the CMakeLists.txt then I need to close Qt Creator and reopen it for it to work again.

Prashanth says:

How do I get the Analyzer Configuration Window.
When I select the “Clang Static Analyzer” and run , it runs for the whole project.
I’m using Qtcreator 4.7.0.

thanks,

Eike Ziller Eike Ziller says:

Qt Creator 4.7 doesn’t have “Clang Static Analyzer” anymore, it’s called “Clang Tidy and Clazy” now, so I’m not sure if you are actually using 4.7.
The configurations that are used for this and also for the editor’s inline annotations can be viewed and changed in Tools > Options > C++ > Code Model, under the section Clang Code Model.
Make sure that you have Tools > Options > Text Editor > Display > Line Annotations on.

Prashanth says:

thanks for the pointing out my folly. I forgot to update my shell to point to the latest installation of qtcretor.

Andrew says:

My program crashes. It says: “QWindowsEGLContext: Failed to create context, eglError: 3005”. Definitely, I have no problem with QtCreator 4.6.2.

Dave says:

I’m getting a similar issue trying to run a widgets app with an embedded QQuickView. After this and multiple run-ins with the clang code model today, I am downgrading back to 4.6. It’s unfortunate these releases are advertised by the maintenance tool when they are so buggy.

[opengl\qopenglframebufferobject.cpp line 575] OpenGL Error: 1281
QOpenGLFramebufferObject: Framebuffer incomplete attachment.

Eike Ziller Eike Ziller says:

Please try running with the environment variable “QT_OPENGL” set to “desktop”. If it doesn’t help please create a bugreport so we can try to figure out why Qt has issues with your OpenGL/GraphicsCard setup.

Michael Cox says:

I’ve got an issue whereby QT_OPENGL is set to “angle” from System Environment..

However it is not set in my system environment. Where is it getting it from?

I’ve restarted Qt Creator.. closed/open project…

Eike Ziller Eike Ziller says:

Qt Creator sets it (for itself, but it is inherited by child processes).

Dave says:

Eike, thanks for the help, this works.

Rafael Castillo says:

Great Work Guys

Now please for everything that is holy in this world consider adding a way to have tabs again(don’t care if it is optional) in the UI, split side-by-side just doesn’t cut it, is the only real issue left with QtCreator that stop me from using it on a daily basis.

I seriously prefer to integrate Qt5 and CMAKE into Xcode, Kdevelop(on linux side ofc) because on big projects QtCreator UI become unusable for me, sure QtCreator have some search functions but they are not that simple to use(compared to any other existing IDE on earth) and I shouldn’t have to since every IDE ever created since the old Borland C let you have TABS.

Im not being negative here I do love Qt, just really frustrated nobody there seem to get this UI is not that great for a huge bunch of devs out there in its current form, just add an option like Xcode does, doesn’t have to be default or anything

Dimitris says:

+1

Birdy says:

I do have a “open documents” in addition to the project tab open in the left bar. Which is way more convenient to use than tabbed editors (like VisualStudio).
And why is the search not that simple to use?

rreignier says:

I agree with Birdy.
I find “Open documents” view & “Ctrl + TAB” a better option than tabs.
With tabs, you are limited by the width of your screen to see the open ones.

CarelC says:

I also made this comment about tabs before switching over to Qt Creator. I was informed about the open documents pane and the CTRL+TAB option and never looked back (I was challenged to “give it a go”).
Now tabs in an IDE or editor is the most frustrating thing for me.

Jeff says:

It sounds like ‘open documents’ is a kind of /tree view/ for tabs. In my browser I prefer ‘tree view’ as I use a lot of tabs.

Wolfgang Baron says:

I don’t understand your issue with tabs. Tabs don’t cut it in large projects, because they use too much space and you have to change between mouse and keyboard to use them. Just use Ctrl+Tab, it has the same functionality as Tabs, only without screen cluttering.
And yes, I use QtCreator on large projects without a problem. It’s not slower than other IDEs in any way.

HGH says:

OK, mate! You use keyboard shortcuts, other people use VIM. I like to use a mouse and TABS!

Bumsik Kim says:

Great job.
Qt is working hard for Qt for Python (Pyside 2) these days. Do you guys have any plan for Qt for Python support?

Tobias Hunger Tobias Hunger says:

We are investigating how we can use more Python in Qt Creator and how to support that language better. But there are no concrete plans yet.

Michael says:

Thanks for the steady progress…..

I wanted to use the clang-tidy in the QtCreator that comes with the online installer under windows.
Qt 5.9.6 installed along with the MinGW 5.3.0 of the online installer.

Opened 2dpainting demo.

Starting clang-tidy as shown in the inline video gave just errors in the application output (I tried to tidy only glwidget.cpp):

[Panel: Application output]
23:45:54: Running Clang-Tidy and Clazy on C:\Qt_online\Examples\Qt-5.9.6\opengl\2dpainting\2dpainting.pro
Analyzing “C:\Qt_online\Examples\Qt-5.9.6\opengl\2dpainting\glwidget.cpp”.
Failed to analyze “C:/Qt_online/Examples/Qt-5.9.6/opengl/2dpainting/glwidget.cpp”: Clang-Tidy and Clazy finished with exit code: 1.
Command line: C:\Qt_online\Tools\QtCreator\bin\clang\bin\clang.exe -fsyntax-only -serialize-diagnostics C:/Users/Michael/AppData/Local/Temp/QtCreator-VFMDXw/clangtools-XFUbrL/report-glwidget.cpp-zuhduP -Wno-unknown-pragmas -Wno-unknown-warning-option -Wno-documentation-unknown-command -m32 -target i686-w64-mingw32 -x c++ “-std=gnu++11” -fcxx-exceptions -fexceptions “-D__DBL_MIN_EXP__=(-1021)” “-D__cpp_attributes=200809” -D__pentiumpro__ “-D__UINT_LEAST16_MAX__=0xffff” “-D__ATOMIC_ACQUIRE=2” “-D__FLT_MIN__=1.17549435082228750797e-38F” “-D__GCC_IEC_559_COMPLEX=2” “-D__UINT_LEAST8_TYPE__=unsigned char” “-D__SIZEOF_FLOAT80__=12” -D_WIN32 “-D__INTMAX_C(c)=c ##LL” “-D__CHAR_BIT__=8” “-D__UINT8_MAX__=0xff” “-D__WINT_MAX__=0xffff” “-D__cpp_static_assert=200410” “-D__ORDER_LITTLE_ENDIAN__=1234” “-D__SIZE_MAX__=0xffffffffU” “-D__WCHAR_MAX__=0xffff” -D__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 -D__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 -D__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 “-D__DBL_DENORM_MIN__=double(4.94065645841246544177e-324L)” -D__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 “-D__GCC_ATOMIC_CHAR_LOCK_FREE=2” “-D__GCC_IEC_559=2” “-D__FLT_EVAL_METHOD__=2” “-D__cpp_binary_literals=201304” “-D__GCC_ATOMIC_CHAR32_T_LOCK_FREE=2” “-D__cpp_variadic_templates=200704” “-D__UINT_FAST64_MAX__=0xffffffffffffffffULL” “-D__SIG_ATOMIC_TYPE__=int” “-D__DBL_MIN_10_EXP__=(-307)” “-D__FINITE_MATH_ONLY__=0” “-D__GNUC_PATCHLEVEL__=0” “-D__UINT_FAST8_MAX__=0xff” “-D_stdcall=__attribute__((__stdcall__))” “-D__DEC64_MAX_EXP__=385” “-D__INT8_C(c)=c” “-D__UINT_LEAST64_MAX__=0xffffffffffffffffULL” “-D__SHRT_MAX__=0x7fff” “-D__LDBL_MAX__=1.18973149535723176502e+4932L” “-D__UINT_LEAST8_MAX__=0xff” “-D__GCC_ATOMIC_BOOL_LOCK_FREE=2” “-D__UINTMAX_TYPE__=long long unsigned int” “-D__DEC32_EPSILON__=1E-6DF” “-D__UINT32_MAX__=0xffffffffU” -D__GXX_EXPERIMENTAL_CXX0X__ “-D__LDBL_MAX_EXP__=16384” “-D__WINT_MIN__=0” “-D__SCHAR_MAX__=0x7f” “-D__WCHAR_MIN__=0” “-D__INT64_C(c)=c ##LL” “-D__DBL_DIG__=15” “-D__GCC_ATOMIC_POINTER_LOCK_FREE=2” “-D__SIZEOF_INT__=4” “-D__SIZEOF_POINTER__=4” “-D__GCC_ATOMIC_CHAR16_T_LOCK_FREE=2” “-D__USER_LABEL_PREFIX__=_” -D__STDC_HOSTED__ -D__WIN32 -D__LDBL_HAS_INFINITY__ “-D__FLT_EPSILON__=1.19209289550781250000e-7F” -D__GXX_WEAK__ “-D__LDBL_MIN__=3.36210314311209350626e-4932L” “-D__DEC32_MAX__=9.999999E96DF” -D__MINGW32__ “-D__INT32_MAX__=0x7fffffff” “-D__SIZEOF_LONG__=4” “-D__UINT16_C(c)=c” “-D__DECIMAL_DIG__=21” -D__LDBL_HAS_QUIET_NAN__ -D_REENTRANT “-D__GNUC__=5” “-D_cdecl=__attribute__((__cdecl__))” -D__GXX_RTTI “-D__cpp_delegating_constructors=200604” -D__FLT_HAS_DENORM__ “-D__SIZEOF_LONG_DOUBLE__=12” “-D__BIGGEST_ALIGNMENT__=16” -D__STDC_UTF_16__ -D__i686 “-D__DBL_MAX__=double(1.79769313486231570815e+308L)” “-D_thiscall=__attribute__((__thiscall__))” “-D__cpp_raw_strings=200710” “-D__INT_FAST32_MAX__=0x7fffffff” -D__WINNT -D__DBL_HAS_INFINITY__ “-D__INT64_MAX__=0x7fffffffffffffffLL” -D__WINNT__ “-D__DEC32_MIN_EXP__=(-94)” “-D__INT_FAST16_TYPE__=short int” “-D_fastcall=__attribute__((__fastcall__))” -D__LDBL_HAS_DENORM__ “-D__cplusplus=201103L” “-D__cpp_ref_qualifiers=200710″…

Eike Ziller Eike Ziller says:

Please create a bug report on https://bugreports.qt.io/projects/QTCREATORBUG .

fbucek says:

Please consider filling bug report for us. And respond with that bug url.

1) Not everybody has account or time to create one, just to duplicate what was already written.
2) Filling bug is not so straitforwad. You have to have account, you have to check if it was not filled before, you have to choose product which is not obvious Qt, QtCreator or Clang-static analyzer or what is correct option?
3) People are working with many IT systems/software do not expect, that everybody is familiar with yours.

You have everything you need, account, experience etc.

You can create bug report and ask to add details with information, that it will be deleted if no action is taken. That would be nice.

By the way, I have the same problem, same error.
What I am suppose to do? Start for looking if the bug was already created or fill bug myself? Or both. I just want to add comment that I have exactly same problem just to make sure it is not one user problem.

Eike Ziller Eike Ziller says:

If you don’t have an account, you cannot answer questions on the bug report.
The link I gave you points you to the right product. It is QTCREATORBUG. When you open that and click the friendly green “Create” button, it will already fill in the right project in.
If you are not sure which Component to set, just set “All other issues”. People will take care of it.
Since you are creating the bug, you will be set as “reporter”, which gives everyone an idea on who it is they are talking to (as well as being auto-subscribed to updates to the bug).
Of course it’s nicer if you take 1 minute of your time to check if you can find an already existing issue that fits your problem, but if not then a bug report is better than no bug report.

Alfred Ko says:

qt-creator-opensource-windows-x86_64-4.7.0.exe with infinite “Performing license pre-conditions check…”. How to install without Internet connection and etc.

Vil says:

There are a lot of nice improvements in this release, but unfortunately I don’t find the Clang code model very usable for editing yet. It’s great for analysing code, but the old code model is still a lot more convenient for actually writing code.

For example if you add a method declaration to a class then go to implement that method, the Clang code model will not auto-complete the parameter list for you: it gives you an empty parameter list and an inline error annotation saying that the definition doesn’t match the declaration. It won’t let you navigate back to the method declaration either (e.g. via Ctrl+Click on the method name).

Another example is that the Clang code model won’t offer auto-completions when you’re typing a comment. If you want to refer to a symbol name in your comment, you have to type it in yourself (or copy & paste it).

Are these things that can be fixed on the QtCreator side, or would they require changes to Clang? In other words, where should I submit my bug reports?

In any case, thanks for all the hard work that goes into QtCreator! It’s still far and away the best C++ IDE, in my opinion.

Eike Ziller Eike Ziller says:

You can report these things for Qt Creator. We’ll then see if a bug report for Clang is in order (and possibly directly a patch)

Vil says:

Thanks Eike. I’ve filed these bug reports:

“No autocompletion of parameter list in method definition with Clang code model”
https://bugreports.qt.io/browse/QTCREATORBUG-20826

“No autocompletion of symbol names inside comment blocks with the Clang code model”
https://bugreports.qt.io/browse/QTCREATORBUG-20828

“Navigation between a mismatched method declaration and definition doesn’t work with Clang code model”
https://bugreports.qt.io/browse/QTCREATORBUG-20830

I hope they’re helpful!

Andre says:

Thanks Vil!

Wolfgang Baron says:

What a pitty, you completely bricked this release (at least on some Windows 10 amd64 machines). Opening any c++ source starts Messages “Clang Code Model: Error: The clangbackend process has finished unexpectedly and was restarted.” in fast succession. I already completely reinstalled Qt, reduced the system path to the bare minimum and renamed my %APPDATA%\QtProject folder without success. On another machine, it just works.
Now I have to downgrade to the previous release. Please fix this asap.

Tobias Hunger Tobias Hunger says:

Please file a bug report about this issue! We can not fix it without enough information to reproduce the issue and getting that via comments on a blog post is not efficient.

Boudewijn says:

I’ve got the same problem on Linux with the prepackaged binaries, but it only started happening when I changed the default checks.

Wolfgang Baron says:

Thank you for your info. I tried all kinds of C++ warning options, including no warnings at all and disabling Clang-Tidy and clearing the option string for Clang and disabling Clazy. As soon as there is a C++ source visible in the editor, the messages keep coming, even in a newly wizard generated command line program project. As soon as there is no C++ file visible anymore, the messages stop.
Who else has these unconditional crashes and might have a workaround for that?

aportale says:

You can disable the ClangCodeModel plugin in order to get the state of Qt Creator 4.7 back.

Wolfgang Baron says:

Sorry, I would rather use Qt Creator 4.6 with ClangCodeModel instead of Qt Creator 4.7 without.

aportale says:

Ok, I misunderstood and thought that you were using the old (non-clang) code model in Qt Creator 4.6. I am sure these issues will be handled, thank you for the reports.

Ivan Ivan says:

In average ClangCodeModel in 4.7 should work better because of using newer Clang version but this also means the possibility of a new random crash.
Also it would be very nice if you created bug report mentioning your minimal code example so that we could fix your issue.

Gianni says:

Hi,
I have updated to 4.7 and when I build my project I get this error:
:-1: error: Failed to retrieve MSVC Environment from “D:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Auxiliary\Build\vcvarsall.bat x86_amd64”:
The command “C:\WINDOWS\system32\cmd.exe” could not be started.

How to fix it?
thanks

Vladimir says:

Hello!

Same problem.
Window 7 x64, msvc2015, msvc2017.
In addition, in the process hangs a lot of cmd.exe. They do not end even after the closure of QtCreator. It is necessary to kill them manually.
With the version of QtCreator4.6.2 x64 this did not happen.

(thanks google for translation 🙂

Andre says:

Hi Gianni,

that sounds related to https://bugreports.qt.io/browse/QTCREATORBUG-20829

Can you check that report and comment there?

Thanks!

HGH says:

You should really think about prioratizing:
1. Fixing the bugs.
2. Overhauling the debugging. The Debugging UI is a bit dated and uncomfortable. Also on Windows the debugging starts too slowly.

Wolfgang Baron says:

+1

Gianni says:

and it is also blocking going step by step

Andre' says:

“is dated” does not translate well into actions. What do you think should be changed, and how?

Petr Pehal says:

Clang code model works like charms for me – I know there was a lot of complaint about speed and so on…

My experience so far – permanently opened ca 15 projects, about 1M LOC – code completion, navigation, code model reloading works very fast and inline warnings and fixits are amazing. (Ubuntu 16.04, i7-6700HQ, 8 cores, SSD)

Really good job!

IGHOR says:

So many releases of Qt Creator, but still no MacBook Touch Bar support.
Still using third party apps just to be able to use F10 key.
Shame on you.

Jason says:

Still doesn’t syntax highlight enums….

Karim Benyamna says:

Hello,

Thanks for this version especially after the nightly build that solved the crashes.
But I have hard time running the full clazy + tidy on huge project, it seem’s spammed by qt and gcc header files (freeze then crash after dozen of hundreds of messages), the typical clang key to ignore system headers doesn’t seem’s to work.
Am’I missing a way to configure it ? When can I found a tutorial about the possible configurations, especially using qt creator if possible, as it seem’s to accept only some specific options.
The final gcc command in the makefile used for building is quite huge (~20 k symbols) and I don’t think clang model reuse it somehow.

Keep up the good work!

Wolfgang Baron says:

Which nightly build are you talking about? The latest snapshot I have found is https://download.qt.io/snapshots/qtcreator/4.7/4.7.0/2348/, which is the release version with the described problems. Do you have another source? I would very much like to start using the cool improvements 4.7 offers.

John Werner says:

CLang-Tidy has a major issue on Windows 10. Under certain cases, applying a Fixit will break code with no easy way to undo the change (luckily I had just committed to a repo when I found this bug). I have opened a bug report (QTCREATORBUG-20827) which includes both pre- and post-fixed code.

Konstantin Isakov says:

Best release so far, not a single problem, thanks a lot!

Rafal Dembek says:

How do I change the clang code model to “-std=c++11” ? My project is not compatible with the default c++14 in clang 6.0.
I use the “import existing project” with .config .files .includes files.

Vladimir Kraus says:

Excellent work, thanks. I have two issues which annoy me when working with QtCreator.
1) When I write a method of a QObject (or any function which is described in Qt help) but I have wrong parameter types, and then press F1 to get help to this function, it tries to find the correct overload of the function. But since I have wrong parameter types, it finds no overload and no help. But sometimes I need to read the help to get the parameter types well…
2) Code autocompletion works only if there are no text characters to the right of my current cursor. I want the autocompletion to offer suggestions even when I am editing in a middle of a word. For example having cursor ‘|’ like this ‘QStringLi|sp’ will offer no suggestions (unless I press Ctrl+Space). I think the ‘intellisense’ in Visual Studio with Visual Assist work more smoothly in this aspect.

Robert says:

I can now tell Creator to configure clang-tidy based on a .clang-tidy config file. But where should I place that file?

Ivan Ivan says:

.clang-tidy config file is expected in the root directory of your project following the clang-tidy documentation (“clang-tidy will attempt to find a file named .clang-tidy for each source file in its parent directories.”)

Robert says:

Any way to provide a gloval .clang-tidy file for all projects (except those which have their own)?

Robert says:

As some commented previously, I noticed that autocomplete often does not work, even in trivial cases (e.g. autocomplete a local variable in a “for” statement; autocomplete a known class name in an “if” statement). My feeling is that as soon as the model displays errors (and that can quickly happen while you type), autocomplete stops working.

Now the interesting thing is that I have been using the clang code model since 4.6 with no such issues. Or was autocomplete always done using the old model prior to 4.7?

Slava says:

Clang code model stopped working for me with this release. Had to switch it off just like previously I had to switch it on…

Andrej says:

Hi,
I’m using Qt Creator to develop non-Qt code compiled in a totally alien proprietary compiler, which I’m invoking as a Custom build step. After updating Creator to 4.7.0 I got a huge bunch of errors (apparently from static analysis) both directly on code lines and in “Build Problems” pane. Previously, I was only getting compile errors from my compiler, which prints error lines to stderr.
How can I get rid of those error messages? From this blog post it seems that I should disable “ClangCodeModel plugin”. How to do that? I went through all Options dialogs I found, and also searched Qt Creator installation directory, but couldn’t find a way to do that.

Eike Ziller Eike Ziller says:

Help > About Plugins (Windows/Linux), Qt Creator > About Plugins (macOS)

Commenting closed.

Get started today with Qt Download now