Eike Ziller

Qt Creator 4.3.0 released

Published Wednesday May 24th, 2017
58 Comments on Qt Creator 4.3.0 released
Posted in Biz Circuit & Dev Loop, Qt, QtCreator, Releases

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

Qt Quick Designer with integrated code editor

Qt Quick Designer

For Qt Creator 4.3 we integrated a code editor into Qt Quick Designer. This allows you to use the Properties editor and the Navigator also while editing code. Additionally, you can split the view to show both the graphical and the code editor, and directly see how a change in the graphical editor affects the code, and vice versa. Of course, you can still use the code-only editor in the Edit mode as well.

There have been many more improvements and additions to Qt Quick Designer, like better support of stacked containers and a new tool bar for common actions. Please take a look at the blog post that focuses only on what is new in Qt Quick Designer.

CMake

If you use Qt Creator with CMake 3.7 or later, we now use the server-mode that was added to CMake 3.7 for the benefit of IDEs. It provides much better information about the project structure, include paths, and more, than what we could parse from the generators and Makefile before. As a result you also see products and targets in the project tree and can build them individually.

Regardless of CMake version we added header files to the project tree, even if they are not listed explicitly in the project files. You now can also import existing builds of a CMake project, like we already provide for QMake based projects, which sets up a kit with the information found in the CMake cache from the build, and registers new toolchains and Qt versions as needed.

C++

If you are coding in C besides C++, or use files in different (sub-)projects with different defines, you will find a new feature in the C++ editor helpful: If a file is used in different contexts, a drop down menu appears in the tool bar on top of the editor, that allows you to choose the (sub-)project and language that the editor should interpret the file in (documentation).

If you are up for a bit of experimentation, enable the ClangRefactoring plugin. It adds preliminary support for clang-query to Advanced Find and uses Clang for the local renaming refactoring.

CDB / MSVC Debugging

Our CDB support for debugging MSVC code now uses a Python based backend for pretty printing. This results in much better performance and, since it shares most pretty printing code with our GDB and LLDB backends, also in more, better, and unified pretty printers for Qt Creator’s CDB support.

Note: The CDB debugging support moved to a separate, optional component in the installers (enabled by default). Unfortunately that means that if you use the online installer to update to Qt Creator 4.3, this new component will not be installed. You have to restart the maintenance tool, choose “Add or remove components”, and install the Qt > Tools > Qt Creator CDB Debugger Support component to get it back.

QML Profiler with in-code performance information

QML Profiler

When you profile your Qt Quick application with the QML Profiler, you see performance information now also directly in the QML code editor. The profiler itself received many performance improvements as well, and many smaller UI issues were fixed.

Android

Qt Creator 4.3 fixes the issues created by changes in the Android SDK version 25.3.1.

iOS

If you use Qt Creator for iOS development, you can now choose the developer team and provisioning profile used for signing. This overrides the default that QMake chooses and any settings you have in your project files.

Other Improvements

There have been many more improvements, which are described in more detail in our change log.

Get Qt Creator 4.3.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.3.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.

Note: The CDB debugging support moved to a separate, optional component in the installers (enabled by default). Unfortunatly that means that if you use the online installer to update to Qt Creator 4.3, this new component will not be installed. You have to restart maintenance tool, choose “Add or remove components”, and install the Qt > Tools > Qt Creator CDB Debugger Support component to get it back.

Note: We now provide 64-bit offline installers for Windows.

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

58 comments

Kayra says:

Thanks for this significant release.

IMO, one of the most improtant changes is the reimplementation of the Welcome page with QtWidgets. This change really improved the startup time and responsiveness of QtC. I find it odd that this change is not mentioned anywhere, not in this blog post, not in the beta blog post, and not in the changes file.

Vadim Peretokin says:

I can confirm that it does launch faster. Did they really get rid of QML though?

Kayra says:

This is the commit which introduced the QtWidgets based re-implementation:
http://code.qt.io/cgit/qt-creator/qt-creator.git/commit/src/plugins/welcome/welcomeplugin.cpp?h=4.3&id=16944277d2aa2cdab194ec05de6c8e2d5ee814cd

Eli says:

Why reimplementing the old QtWidgets and not fix the qml code? For me this is really strange because qml is praised as the future of Qt. Can someone from the QtCompany explain this to me?

Nice release nonetheless! I love the new side by side QML/Code view!

tham says:

If the future do not include desktop apps, no matter how much advertisements Digia made, I never found qml a nice tool for complicated, traditional desktop apps, QWidget always works better and easier to codes for this kind of app.

Kayra says:

You may find this suggestion from a The Qt Company developer and the discussions interesting:
https://bugreports.qt.io/browse/QTCREATORBUG-15727

Eike Ziller Eike Ziller says:

We do not mention that we basically rewrote the Projects tree either. If users notice, we most probably have done something wrong.
The situation is a bit similar with the Welcome mode change, though you are right that it actually fixes issues in certain configurations: https://codereview.qt-project.org/195515

Jean-Michaël Celerier says:

Hard to not notice…
Here is how it looks side-by-side on my machine (top is 4.2, bottom 4.3) :

http://i.imgur.com/NLbXSxN.png

Also, the QWidget version feels much smoother when moving over “hoverable” object such as the recent project list. There is a somewhat perceptible lag in the QML version (I’d wager a 1-frame lag).

Kayra says:

In my case, this change is a very significant performance improvement. With the previous implementation, QtC was unresponsive after launch about 5-10 seconds, depending on hot vs cold start. Although the recent projects list was shown, you were NOT able to click on and open any of the project links, with “Not responding” added to window title. I was experiencing this issue with every QtC launch on a PC that has 16GB of RAM, an 4-core (8 HW-thread) i7 CPU, an OK-ish NVidia GPU on Windows 7.

Eike Ziller Eike Ziller says:

For me the difference in startup time of the welcome plugin is about 5% of total startup time.

Btw, to see details on what part of Qt Creator is to blame for how much startup in which startup phase, you can start it with “qtcreator -profile” (you probably have to use DebugView or similar on Windows to get the debug output that this prints).

Dan says:

It should also hopefully fix the crash when running Qt Creator inside VirtualBox linux VM.

Nenad says:

Crashes immediately after opening and loading session with 5 cmake-based projects. When creating an empty session and manually loading each project one-by-one, then it works, but automatic loading of multiple cmake projects results with horrible crash.

Where can I send a stack trace of the crash and bug report?

Cristian says:

Try unchecking “Autorun CMake” in CMake settings.

Tony Mandah says:

As usual new resales carrying a trail of bugs from older ones and adding to the list.
There are hundreds of outstanding bugs and I wish instead of adding new features they work on bug fixes and bring us a more stable product.

Albert says:

Still 3.3 gradle version fail on android…

Michal says:

Any plans on using Clang for ‘follow symbol under cursor’ and other code navigation features?

Tobias Tobias says:

Yes, that is on the big todo list.

Alexander Ivash says:

Cdb stopped working (installing cdb plugin didn’t help). It says ‘Unexpected cdb exit’ ‘The cdb process terminated’

Alexander Ivash says:

… although it works with sample project, weird..

thiago says:

still lacks tabs support

Tobias Tobias says:

No need to wait for tabs to appear: We think tabs are entirely useless for an IDE and have rejected patches that add them.

Use Ctrl-K to jump to different kinds of places all over your code are use Ctrl-Tab to see a list of recently opened documents and switch between those.

HGH says:

Steve Jobs is the only one allowed to say: “You are holding it wrong.”

Don’t tell Visual Studio developers that tabs are useless. Some people are better with shortcuts. I am not. I simply cannot remember any but the basic. Some people work better with a mouse.

As a tool provider you shouldn’t tell the people how to hold your tool but make it comfortable and customization: people who don’t need tabs should be able to disable them, those who need them should have them.

It is no surprise why IDEs like Visual Studio, IDEA are so popular and getting more and more popular and all of them support tabs and more. Even simple Notepad++ like editors do too.

Alex says:

You always can use “Open documents”or “Project tree” and mouse.

Alex says:

Whether you use tabs or windows (Emacs lingo) is a philosophical question. Qt-Creator supports windows very well, and you can even search for buffers with a simple keystroke. I agree it would be nice if Qt-Creator would support both, so both types of users feel comfortable.

HGH says:

This has nothing to do with philosophy. Some people are better at using keystrokes some are better with a mouse. This is not at all in the same league as where should you put your brackets or if you should use camelCase or not.

Eike Ziller Eike Ziller says:

You can use the Open Documents view for changing between documents with the mouse.

RWang says:

Just updated on two Windows 7 machines. Both constantly hangs and I had to force kill it. Then it couldn’t start any more even after I reboot! So much for faster starting time 🙁

@RWang: Please provide detail bug report at bugreports.qt.io – including details of your configuration.

Sina says:

Thanks for the release! Is there any way to older version of project tree with 4.3?

Slava says:

The new project view is so bloated for cmake projects… Instead of seeing project files directly under folder level, I have to dive two! levels down. Maybe it is worth to not display the folder view at all for the folders with a CMake file and a single target in it, but directly the target? Folders with many targets, like tests, are totally unusable, maybe worth showing files separately from targets then? I am really not sure which would be the best way to do that, but I do not feel like anybody gave any thought about it either.
Still no run target generated automatically for CTest, instead some loosy plugins for each particular test framework (none of which I happen to use). OK, I can easily create it myself and it needs to be done only once per project, not a big deal, but still…
Clang code model disappeared after upgrade, but I suspect that is the issue of my distro (arch). And by the way I really liked it more when I could switch the code model on the fly instead of restarting Creator. Is there a technical reason for this, or that is a usability ‘feature’?
What else… Ah! Creator is still the best C++ ide, thanks for your work guys.

Eike Ziller Eike Ziller says:

“And by the way I really liked it more when I could switch the code model on the fly instead of restarting Creator. Is there a technical reason for this, or that is a usability ‘feature’?”

It already didn’t really do what one might expect (e.g. not affecting open editors), and since we plan to increase the use of Clang in more parts of the model (refactoring, indexing,…), making it switchable on the fly would have created more hassle than we deemed it worth.

Tobias Tobias says:

The intention of the project tree is to visualize the build system structure. With cmake’s server-mode you now get exactly what cmake thinks the project structure is.

Before Creator had to guess at the structure and had to leave out a lot of information that was just not available.

Georges says:

@Tobias: I understand that the project structure is now “better” reflected by Qt Creator’s projects view, but it’s just massively counter productive for projects where cmake generates a multitude of smaller projects/libraries. In facts, it’s bad enough that I now commonly turn to another IDE (Atom) to find the files I’m looking for & edit them, then switch to Qt Creator to build, which is saying something!
One way to improve on this, would be to make the File System view be hierarchical and allow a proper navigation of the files on disk, rather than systematically hide things deep in sub-hierarchies, under the excuse of matching a build system.
After a week of using this update, I have yet to find a real advantage over the previous view. Well, one thing: it allows to build targets directly, from the Projects view, which is a way to work around that building the “current executable” doesn’t work anymore… 🙁
I’ll keep the rest of the team on the older version, for now, at least.

Michael says:

Completely unusable with multiple targets, which have files in subdirectories.
When you have to make changes across libraries.
Before:
1. Go to the directory open the file.
Now.
1. You cannot find the file you need, you have to first find find the directory in which the project lives.
2. Then you have to open that project.
3. Then you have to open
4. Then you have to find the file.

4 Steps instead of 1.
While having the added difficulty of having a ton of empty folders with just the CMakeLists.txt inside.

Now stuff like a file.h is somewhere in the project but the file.h.in is in cmake modules.
And some Headers are in
There is a reason they were put in the same directory.

Please make the old view optional.
I don’t care for cmakes internal structure, it isn’t useful. It’s just there to work.

Maciej Libera says:

And here one vote on yes.

While I agree that there is to much steps needed to get to file, after a while I am using this new Project view more than the old one. Because it allows me to find things in different way.

I also like to see how CMake is seeing my project. I have quite complicated setup and now I can see it, so I can more easily refactor its structure if I want to.

Note that I am heavily using ‘Ctrl + K’ for navigation, so I do not really need ergonomically optimized Project view. It won’t hurt either of course 😉

Vangelis says:

Are there any plans for upgrading Qt Creator to a more modern UI, especially having high-DPI displays in mind?

Personally speaking, it’s a major inhibitor, that holds me from moving from CLion, Xcode and Visual Studio to Qt Creator.

Tobias Tobias says:

Creator works fine on my hidpi screen. What kind of change do you have in mind?

Manuel says:

For me, the 4.3’s editor (C++) is terribly laggy and slow when using on a hidpi screen.

MIkhail says:

Congratulations with the release!
You know, current version of Project navigation with CMake looks really unfinished. I Understand that cmake has its own way of representation, but right now it is unusable and overengineered. I really don’t need to know what the hell happens in build dir every time Iook at the project, but I need to cleanly see my source files. Especially some config.h.in’s that got stuck into some strange category not connected to any subproject. Also git plugin gets out of his mind trying to understand whether files are tracked, modified, or even there.

Tobias Tobias says:

Sorry, if you do not like the CMake project structure. Creator displays exactly the information that CMake provides to it now. That information got both more complete and more reliable, so I am happy for now:-)

If a config.h.in is not connected to any target, then that is because it does not belong to any according to CMake. Unfortunately it does in general not care for header files and graciously excludes them from its list of files, so there is just no way for creator to assign those files to targets in most cases.

Kevin Puetz says:

One thing I would *really* like to see from the new view is honoring [USE_FOLDERS](https://cmake.org/cmake/help/latest/prop_gbl/USE_FOLDERS.html) and [FOLDER](https://cmake.org/cmake/help/latest/prop_tgt/FOLDER.html)

Without that, a lot of our projects show very cluttered project trees full of add_custom_target entries that exist only to represent cross-subdir dependencies.

Dan says:

Hello, thanks for new release. Are there any plans to further improve performance of debugging with CDB? For me, this is a long term issue and this release doesn’t seem to make much of a difference. If the program hits a breakpoint, it takes about 5 minutes for creator to display callstack and locals, then if I press F10/F11, sometimes it’s quick, but sometimes it takes another 5 minutes just to jump to another line… Same delay sometimes happens if i try to expand some variable in the locals view…
However if I debug the same project in visual studio, I never have to wait more that 5 seconds for the debugger to load…

David Schulz says:

Hi, please fill a report at bugreports.qt.io and attach the content of the debugger log (Window > Views > Debugger Log). Please also enable the “Log Time Stamps” option from the context menu of the debugger log pane.

Alex says:

Thanks for the new release. Qt Creator is the best C++ IDE out there. I use it even for non-Qt projects nowadays. http://machinekoder.com/qt-creator-for-gtkmm-and-automake-projects/

Bruno says:

Excelent news, but Qt Quick Designer is still very unstable. If you run a sample app and, while the app is running, you attempt to edit some form, Qt Creator freezes for more than a minute. This also happens if you add a new file into a resource while the app is running.
The components displayed into “QML Types” “forgets” the components available. It’s simple to reproduce. Just drag a few components, specially layouts and you’ll notice that after a few components added, “QML Types” doesn’t show every component available.
Another bug I found was that sometimes if you open a form file by “Ctrl+K”, it doesn’t display the correct form file into the designer.
Beyond that, Quick Designer got a lot better. It’s worthwhile now! 🙂

Tim Jenssen says:

@Bruno good to hear that you see it as improved.

Please create bug reports about your issues. A general tip about hanging designer would be to start QtCreator with environment variable QT_OPENGL=software.

Catalin Moldovan says:

Has anyone noticed a degradation of the overall performance of the code editor with the latest release on Mac Os? I’ve recorded a small video of scrolling here: https://www.dropbox.com/s/4w6sh28qy2y2pop/qt%20creator%204.3%20scrolling.mov?dl=0
There’s a really large lag between mouse movement or wheel rotation and the scrolling inside Qt Creator 4.3.
As advertised I din noticed faster startup and debug launching.

Kayra says:

I don’t use a mouse but the regression is very noticeable with touchpad as well.

mschwarz says:

4.3 is so slow on the Mac, it’s actually painful … scrolling and typing are so lagged, after I finish typing I have to wait several seconds for the last characters to appear …

Scrolling with the mouse wheel feels like it has slowed down by factor 10 or so … not smooth at all, but scrolling in big chunks with noticeable delay …

SHakeR says:

New Creator don’t load translations for 100%. The setting “Language” in enviroment is “System” or “Russian”, but the page “Welcome tab”->”Projects tab” not contains translation for russian language, i.e. threre is still buttons with text “New Project”, “Open Project”, labels “Sessions” and “Recent projects”. The same is in the “Editor tab” – project tree nodes are not translated to Russian, i.e. “Headers”, “Sources”, “Forms” and “Resources” nodes.

anton says:

Is QML a dead Horse?

Hi I want to start to use Qt or at least give it a try,
looking at QWidgets and QML I am not sure whats better.

And if now QtCreator switches back to QWidgets it means they do
not trust QML (at least partially) anymore, and they do not
believe that they will get their QML issues fixed some day.

It’s clear that this is not communicated because it would massively
unsettle the customers.

My question:
– what do you use day by day (QWidgets or QML)?
– what would you use if you start a new project from scratch?

@anton: Both Qt Quick (QML) and Widgets (C++) are fully supported technologies to build cross-platform applications. Both have a large number of users and you can choose either one to your application. If you want to build a dynamic UI for embedded or a scalable mobile application, or a desktop application that needs the capabilities of Qt Quick, you probably use Qt Quick / QML in your app UI. If you are making a classic desktop application that follows platform style, you probably want to use Widgets. These technologies can also be mixed in the same application, if you so desire. The application logic and all “heavy-lifting” is best done with C++ for both Qt Quick and Widgets applications.

Max says:

Memory leaks just while typing
openned .h or .cpp and started ssssssssssssssssssssssss……..
leaks with each char(any letter, but not dot) added
does this exist? or it’s something on my system?
no such leaks in other text editors

Qt Creator 4.3.0
Based on Qt 5.8.0 (GCC 5.3.1 20160406 (Red Hat 5.3.1-6), 64 bit)
Built on May 23 2017 11:09:03
From revision 7482d8a152

Alexei says:

I have same problem. Some times it eats 2.0GB+ memory (Windows 8.1 x64) .

marines says:

Any chance for floating windows? Undock for
– “Projects”, and
– “Output panes” (as whole – no need to undock each output separately)
would be enough.

Damien Courtois says:

Hi, first of all, thanks for all the work !
And now, a quick question : when using GDB, in the Debugger > GDB tab, we have a “Extra Debugging Helpers” option that allow us to add our custom debugging helpers. In this release of QtCreator, it’s announced that now CDB is going through the same unified python backend for pretty printing. And true enough, there’s a cdbbridge.py file implementing the Dumper utilities. But **where** is the option to add our custom debugging helpers in the CDB tab ????
Is there any way to use custom debugging helpers with CDB ??

Commenting closed.

Get started today with Qt Download now