Eike Ziller

Qt Creator 2.4.0 released

Published Tuesday December 13th, 2011
50 Comments on Qt Creator 2.4.0 released
Posted in Qt, QtCreator

We are happy to announce that finally Qt Creator 2.4.0 is ready to be published. I’ll summarize a few of the great amount of features and improvements in this release. You find a longer list in our change log, and you can also have a look at what we fixed for 2.4.0 in our bugtracker. The commit log from our repository is only recommended if you have a lot of time: Around 1300 commits have been accepted since 2.3.1. Lots of thanks go to the contributors, you find a list at the end of the change log ๐Ÿ™‚

  • My personal highlight: The “synchronize declaration and definition” quick fix, and the fixes for the “create definition from declaration”. When you change either declaration or definiton you’ll notice a little lightbulb appearing. If you now press “alt+return” (or click the bulb) your changes are applied to the counter part.
  • “Schemes” for the coding styles (C++ and QML), reusable between projects
  • QML rename usages and semantic highlighting
  • Access most recent searches
  • Encoding fixes for search & replace and the refactorings
  • Subversion 1.7 support
  • Netbook users will be glad to hear that the preferences dialog now has a decent size again

 

At the end a few words of advice: Because of the coding schemes, you’ll now need to change the coding style to change tab and indentation settings for code (was done in text editor settings before). Qt Creator tries to migrate existing text editor settings to the new style for your projects, but if you had project specific settings before you’ll need to set them again.

If you are confused where the Qt version settings have gone: They are now in the “Build & Run” category, together with the tool chain and the general project settings.

You can download the standalone release from DevNet, and the release is going out as an update to users of the Qt SDK (might take a few hours to spread through the world).

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

Posted in Qt, QtCreator

50 comments

george kasidas says:

Great news!

I have already downloaded and installed 2.4.0 RC, are there any significant bug fixes since then or should I just stick with what I got?

Eike Ziller Eike Ziller says:

There have been quite a few fixes, including a few potential crashes, so updating is probably a good idea

Alexandre Bique says:

Even at version 2.4.0, it’s not possible to bind Alt+F to GotoNextWordCamelCase.

Alexandre Bique, there are several impossible ‘bindings’. Usually qt-creator refuses to override settings, which the developers think they are holy and must be immutable for everyone. ๐Ÿ˜‰

But you can export the key settings, edit the xml file manually and import again.

This is irrelevant but I’m just asking it in curiosity. I was try to use Qt’s internationalization but it took one for me configure what wasn’t working properly. Actually it was the missing .ts and .qm files in the Application’s current directory. I was just trying it out in a trail and error method. The same problem occurred when I was trying to set application’s font. Actually I was having files in the project directory.

So my question is it the responsibility of ‘Qt’ to carry all files(like .ttf, .qm, .ts, .jpg) necessary for the application to run standalone. Or is it the responsibility of the IDE (Qt Creator) which we are using to create the project. Because, we must make the developers feel easy to use the language. Silly things like one above should not make Qt unreliable.

Actually, I have worked in VS C# and setting a Form background or button icon was not a problem at all. Its just a process of Browsing and selecting the image file. The same goes with Android too. I felt no problem in deploying images or fonts with the build .apk file. It was just a process of copy and paste into Eclipse. So please consider these issues also.

andre says:

@RajaRaviVarma: It’s neither Qt nor Qt Creator’s responsibility, rather the shared responsibility of the developer, the packager, and the packaging system of your OS. If you use the Qt resource system for e.g. .jpg the image data will be compiled into the binary, so that is being taken care of.

kralyk says:

Imho, the ‘insert definition from declaration’ functionality is quite difficult to find. But hey, otherwise this update is great!

Alexandre Bique says:

Guido Seifert,
I havn’t yet triggered the bug|feature you’re talking about, but the one I point is that Alt+F is commonly used (in your terminal and emacs it moves one word to the right), and in qt-creator, *if you use the english translation* it will override your shortcuts to open the menu “File”.
Three things:
1) shortcuts you define are less important than the immutable shortcuts used for the menubar.
2) the shortcuts used in the menubar are defined by the current translation, so they may change when you change the translation, so you cannot change them without doing a hack (forking your current translation and removing & from the menu titles).
3) I don’t know about you, but I never use the keyboard to browse the menubar, I find the mouse more natural for this task.

There is already a bug for this: https://bugreports.qt.nokia.com/browse/QTCREATORBUG-6235 which just got re-opened. Thank you ๐Ÿ™‚

Dian says:

Alexandre Bique – I simply don’t get people that are nitpicking and moaning about great software some people are good enough to make and provide to you for free! It just boggles the mind!

On a side note, I really like the “sync declaration / definition” feature.

Another great feature would be if the “insert definition from declaration” feature is capable of opening the cpp file in a new split view, so you have the header and the implementation side by side instead of getting sent to the cpp file in the active view.

Currently the feature will switch the active view from header to the cpp file even if I have the cpp file opened in another split view, which is kind of annoying, I already have the cpp view open and I would like to see the “insert definition from declaration” feature aware of this and sending me to the cpp split instead of duplicating it.

Bpjan says:

@kralyk: Just hit “alt+enter” on a declaration and you’ll get an option to add definition.

David says:

Guys, I don’t see any lightbulb when I add a new definition in my header file. ALT+Return doesn’t work either. Is there any option I should enable?

Dian says:

Nope, for me it worked straight away after I updated Qt Creator. Updated at home last night and at work today – it is all working.

Besides offering to sync the definition with declaration, upon changing or creating a method in the cpp file, Qt creator will also offer to add that a declaration in the header for that new definition.

A note thou – both update procedures I ran showed a minor bug – the updater found there is a new version of Qt creator and updated successfully, but it said the new version is the same as the previous version I had installed. It is 2.4.0 thou, it is all good.

Rezza says:

Thx for “Netbook users will be glad to hear that the preferences dialog now has a decent size again”!

Alexandre Bique, never knew (or cared) about the translation problem. Sure, for such more complicated cases my solution may be insufficient. For my case, changing bindings for my personal needs and only in English, which cannot be changed in the gui itself, it is good enough.

Leo S says:

Thanks! Creator is the best IDE.. Fast, convenient, and works with the best toolkit.

@andre Thanks for your reply, but what I’m saying is, make it easy for the developers.. For example, if I want to deploy some image files with my package file, it will be easy, if Qt creator allows me to add some existing files to a folder, say “Other Files”. May be the use of DEPLOYMENT keyword

target.sources += “file1” “file”
DEPLOYMENT += target
can be automated with the addition of files.

Regarding Qt Resource File System, I think the binary will load all the images into memory upon execution, so I consider it as a bad option. This feature will be really useful when developing mobile applications.

@zhocong Qt ๐Ÿ™‚

markus says:

Nize! Best ide got even better!

Collins says:

Just like David, I don’t get a light bulb after adding a new method definition. I do, however, get a popup that reads “Add Definition in [source.cpp]” upon pressing ALT+Enter, which works flawlessly.

Pressing ALT+Enter on a newly method that’s not yet declared only gives me the option to declare the method as public member — it works flawlessy but I would have to move the declaration around if I were to declare it as a private or protected member or as a slot. Is this by design or is it a bug?

I’m running Creator 2.4.0 on Windows XP Pro SP3. Perhaps the latest version of Creator wasn’t thoroughly tested on WinXP.

Collins says:

Sorry, I made some mistakes in my previous post.

“I donโ€™t get a light bulb after adding a new method definition.” Should be:
“I donโ€™t get a light bulb after adding a new method declaration”

“Pressing ALT+Enter on a newly method thatโ€™s not yet declared only gives me[..]” Should be:
“Pressing ALT+Enter on a new method definition thatโ€™s not yet declared only gives me[..]”

Alexandre Bique says:

Hi Dian, yes QtCreator is great. But it’s not perfect (I think that I made a point) and I don’t think that I’m nitpicking or moaning. I followed every release of QtCreator, and tried it at every release. But I never switched from emacs to QtCreator because of *shortcuts*. This is stupid and now we are at 2.4.0.

If you never got used to gnu readline’s shortcuts or emacs’ one you’ll probably not understand how frustrating it is to not be able to use these shortcuts. If you write a lot of code, you should know how code navigation is important. And for me, this single point is stopping me from using QtCreator. If I were alone, it would not matter, but I believe that almost every advanced emacs/gnu readline user would say the same thing. Because we heavily rely on Alt+F, Alt+B, Ctrl+F, Ctrl+B, Ctrl+N, Ctrl+P, Ctrl+S, Ctrl+R, … To conclude, I think that you should try to not be rude against people who shares some improvements ideas.

Carlos says:

I’ve updated QtSDK and now I can not debug ๐Ÿ™
I’m using the MSVC2008 compiler and it worked fine, now when I try to launch a debud session the message “eInternal error: The extension C:QtSDKQtCreatorlibqtcreatorcdbext32qtcreatorcdbext.dll cannot be found.”. That file is in the path, what can I do to correct it?

Thanks in advance

Carlos

Daniel Molkentin says:

@Carlos That’s indeed a problem caused by us switching to “make install” to create SDK packages (in an ongoing effort to make the packaging steps reproducible for the outside world). It’s already filed: https://bugreports.qt.nokia.com/browse/QTSDK-1145. We will release updated packages. In the meantime, please copy the dll from the stand-online Qt Creator packages. Apologies for that.

Adam says:

I’ve very impressed it works brilliantly and I’m enjoying coding with it, ta guys!
Just a heads-up of one potential problem to people who download this and are hit with a sigsev crash when you try the “Design” button on the left toolbar when you have a qml file open. The error you will get is

I/O error : No such file or directory
/usr/share/mime/inode/directory.xml:1: parser error : Extra content at the end of the document

I solved this by changing the qt style from the default “Desktop Setting” to “Plastique” using the qtconfig tool. I’m running xfce as my desktop so I think there may be a bug triggered in the qgtkstyle? I guess all the devs use KDE/Mac so never trigger this bug themselves.

So, with Qt 4.8 final out I also updated to the lates qt-creator. One thing I want to tell you qt-creator devs: The days of 14” monitors are long over. This just from the new welcome screen. ‘Recently used sessions’ and ‘Recently used Projects’ look terrible with its tiny fonts embedded in a huge wasted white space.

Dian says:

Alexandre Bique – If you like emacs so much just stick to it, Qt Creator is not emacs. And anyway, do you really lack the mental capacity to add another shortcut to your repertoire? I am working with a dozen of audio/video/3d applications and they all have fundamentally different keyboard shortcuts to their fundamentally different functions of their fundamentally different workflows, and I know plenty of people that do it as well, remembering hundreds of shortcuts for dozens of applications, how come you can even say something as preposterous as “Qt Creator is useless to me” just because of a reserved shortcut? God forbid you have to put yourself through the excruciating effort of learning an additional shortcut to use with Qt Creator.

OK, lets remove what is pretty much a cross-application standard shortcut for accessing the file menu, just because Mr. Alexandre Bique doesn’t use it, after all the entire universe revolves around him, doesn’t it? Or maybe a special version just for you, called Bique Creator… wait a sec, this is open source software, if you are such a pro just go ahead and change it to your liking.

Dian,
I suppose you can give us a good reason, why there are reserved shortcuts? I was able to workaround it, but before that, I was angry too. I tried to change ctrl-a to have the same meaning as in emacs: Goto beginning of line. If I do it in Environment->keyboard it is just ignored. In a way this is telling the user: Fuck you, idiot, we know better what ctrl-a should be. This is especially so since exporting the keyboard layout, removing the reserved shortcuts reimporting the xml file works great. So there really is no technical reason for this restriction. Just a bunch of developers, who think they know better how a user has to work.

Carlos says:

@Daniel, I’ve copied the dll and it works!
Thanks ๐Ÿ™‚

Eike Ziller Eike Ziller says:

@collins, @david: looks like I wasn’t clear enough: the lightbulb is at the moment only if you change an already existing def/decl pair. We would like to have the lightbulb appearing whenever a quickfix is available, but we’ll have to figure out if/how that had an impact performance wise. Anyhow, even without lightbulb, alt+return will give you the list of available quick fixes at your cursor (if any).

Eike Ziller Eike Ziller says:

@guido: we certainly don’t do anything to specifically prevent you from using ctrl+a for GotoLineStart. We are just not very good at reporting conflicting shortcuts: Ctrl+a is also used for SelectAll. We mark shortcuts that we think are conflicting with a red color, but that’s all atm. Qt will just not execute conflicting shortcuts at all (and instead spill out a message to stderr, which one usually doesn’t see). You *can* remove/change the shortcut from SelectAll via Preferences > Environment > Keyboard though. So, it’s not that we think we know better what ctrl+a is supposed to do, but conflict reporting and resolution needs to be improved.

Eike, first… I really like the creator. And I think you and the rest of the team are doing a great job, The creator really brought the way to develop in C++ on Linux to a whole new level. I usually don’t complain about bugs, we all make them. I don’t complain about missing features. I could add them myself or pay someone to do it. I just get sometimes a little bit snarky, when I think something is a very bad, but consciously made design decision.

So, back to the shortcuts. I am not sure I can remove conflicting shortcuts. When I tried to remove ‘ctrl-a’ from SelectAll I found no way to do it. Any key, like backspace or delete, I tried was just added to the ctrl-a, not freeing it for rebinding. Reset reproduced the default binding. The only way I was able to bind ctrl-a to SelectAll was to export the keylayout, edit the xml file, and reimport it. Even worse, using Preferences I could add ctrl-a to another function. But it worked only for the current session. After a restart the creator silently switched back to the default SelectAll.

I really thought, this was not part of a bug, but for some reason you wanted some shortcuts ‘fixed’. Sorry.

Werner says:

Dear Trolls,
thanks for the Creator – it is really a fast, functional and very nice IDE. And since 2.4 it even remembers previous searches, which is excellent!
Thumbs up to all of you!
w

Eike Ziller Eike Ziller says:

@guido: I have a ‘x’ button in the field where you specify the shortcut (in case there is one set), which I’d have deemed “standard” to clear a field. But I suppose implementing the last point in https://bugreports.qt.nokia.com/browse/QTCREATORBUG-6 would help too ๐Ÿ™‚
(After all one doesn’t want shortcuts that contain backspace that often)

andre says:

@Guido Seifert: “The days of 14โ€ monitors are long over”. Not in the world of netbook users.

But anyway, the big white screen you see is in the master branch, not in the 2.4.0 release this blog post is about, right?

Dian says:

Guido Seifert – I am not the one you should be asking about why are certain Qt Creator shortcuts fixed, I am not a member of the development team. What all the sarcasm in my post was aiming was a hint that it is not all that hard remembering different key shortcuts for different applications, I promise it won’t kill you to break up a routine, you surely do not expect every application on the planet to conform to the emacs keyboard shortcut scheme, do you? And what is more – there is an ENTIRE KEY on every keyboard. dedicated specifically to send you to the beginning of the line – a single key called HOME, which saves you the use of the alt modifier. In fact most keyboards have two of those, isn’t it a little odd to use “alt+a” (which BTW has no logical association with sending you to the beginning of a line, the letter ‘a’ is neither present in “beginning” nor in “line” ) when you have two keys on your keyboard, dedicated to do so? Or is it just that emacs users are snobby, think they are better than everyone else, and that the world should conform to them instead?

Sure, it would be nice to have every shortcut definable, I myself don’t agree with many of the decisions the trolls make, including some with far deeper implications for the Qt framework than simple shortcuts, but it is their creation, which means I must conform to it or GTFO, since no one is forcing me to use their products. As it seems, the fixed shortcuts are not a bug but a feature, deliberately implemented by the developers of Qt Creator, which suggests there might be a reason for it.

I happen to think that all shortcuts should be freely definable as well, and my rant was not in defense of fixed shortcuts, it was the product of Bique’s preposterous statement that Qt Creator is useless simply for being different from emacs in such a minor aspect. Is it really that big of a big problem to learn a few new shortcuts? I doubt it will kill you, I doubt it is even hard… If anything, the shortcut scheme of Qt Creator is far more logical, the keys used actually ring a bell with the name of the functions they perform.

Stephen Chu says:

Clang and llvm-gcc on Mac do not generate PPC code. Creator still lists them as valid PPC tool chains. Also, with both gcc 4.0, gcc 4.2, and llvm-gcc installed on my system, the Build Settings in Projects panel lists all of them only by “GCC (x86 64bit)” and there’s no way to really tell which one is which.

andre:
> But anyway, the big white screen you see is in the master branch, not in the 2.4.0
> release this blog post is about, right?

Ah, this might be. I don’t pay too much attention to the exact commit when I update. I am probably already a few commits away from v2.4.0. Sorry. But fine. Maybe not to late to give a little input for the welcome screen in v2.x.x. ๐Ÿ™‚
True, some ppl might use netbooks. Really for development? Ok, even then, some ppl have weak eyes and would appreciate a bigger font in the welcome screen.

@Eike:
> I have a โ€˜xโ€™ button in the field where you specify the shortcut

Now that you say it…. *blush*

Dian:
> you surely do not expect every application on the planet
> to conform to the emacs keyboard shortcut scheme, do you?

Actually I do. Computers have to adjust to my needs and not the other way round. And no, of course this does not mean that _programmers_ have to do the same.

> And what is more โ€“ there is an ENTIRE KEY

Totally irrelevant. It is outside my convenient typing area on the keyboard.

> isnโ€™t it a little odd to use โ€œalt+aโ€ (which BTW has no logical association with
> sending you to the beginning of a line, the letter โ€˜aโ€™ is neither present in
> โ€œbeginningโ€ nor in โ€œlineโ€ )

Perhaps odd for you, not for me. I am German. a = Anfang. ๐Ÿ˜‰

> Or is it just that emacs users are snobby, think they are better than everyone
> else, and that the world should conform to them instead?

No, I ask the developers to change it the way I want it. Do it myself, or go and look for some other program. The world does not need to conform to my wishes, nor do I have to adjust to the world, when there are alternatives. Ok, there are none to the world, but definitely to IDEs.

> …or being different from emacs in such a minor aspect.

Minor aspect? I disagree. Ease of use is one of the most important aspects. How important I can always see when a colleague has to type something on my keyboard, which has an American keyboard layout, while they are used to German ones.

> Is it really that big of a big problem to learn a few new shortcuts?

Why should I? Emacs shortcuts are not only used in emacs. I don’t have a switch in my head, which allows me just to toggle easily between different layouts and shortcuts if I run into a program, which demands one or the other. So I stick to one I am used to.

> If anything, the shortcut scheme of Qt Creator is far more logical,

This is nonsense. It is just the scheme _you_ are used to.

After updating from 2.3.1 the file qtcreator.sh was missing, is it not used anymore?

It was the only way i could use qtcreator, it set its own library path so qtcreator would use the bundled QT libraries instead of system libs which in most cases are a different version (“Cannot mix incompatible Qt library (version 0x40702) with this library (version 0x40704)”)

Was this intentional or am i missing something? Anybody else experiencing this?

Oh yeah, gentoo linux… so no problem if its not supported:)

p.s.
i just copied qtcreator.sh from another install i had and it works. 2.4 looks great btw, and its fast too!:)

Razi says:

Dear,
When do you want to add ability for saving the project’s bookmarks? It’s a simple but important feature. ๐Ÿ™‚

andre says:

Razi: The bookmarks are already saved, in “sessions”. Has been like that since the beginning.

Razi,
saving project’s bookmarks is certainly a nice feature. But why stop there? Here a suggestion I made ages ago: https://bugreports.qt.nokia.com/browse/QTCREATORBUG-5572

Unfortunately it did not really catch on with the devs. ๐Ÿ™

andre,
having several sets of bookmarks for a project, which can be stored and restored could be useful, too. Large project, work on several aspects on several days… would be nice to be able just to switch bookmarks depending on what work package someone just works.

Eike Ziller Eike Ziller says:

@guido: that’s exactly what you can use sessions for. Creating a session for an “aspect” will give you a corresponding set of: dependent projects, bookmarks, open documents, breakpoints.

Hmm, interesting. I thought I am a very heavy user of the session feature. But it is always only one session per project. I almost never use “Recently used Projects” since my sessions are very dynamic. One main project and several coming and going subprojects for all the plugins grouped in a session worked very well for me. I actually never tried to create several sessions on the same sourcefolder. And to do this just for another set of bookmarks… probably ok, but at lease feels quit ‘heavy’ for me. ๐Ÿ™‚

Jamal says:

@Dian: there are definitely different mindsets. vi users added fakevim to qtcreator, emacs users complain in blog comments about ctrl-a working the way every else would expect.

siney says:

I like this ide very much, great work, but I found a bug about session, if you terminate QtCreator, after restart lose all projects config information.

Pete Klemm says:

Is there a pre-compiled QtCreator built with MinGW32? It seems all the binary installs of QtCreator are built with MSVC.

I have tried to build QtCreator 2.4.0 from source but have spent many hours trying to get a good build.

nsfw red says:

Thanks , I have recently been searching for info approximately this subject for a while and yours is the greatest I’ve found out so far. But, what about the conclusion? Are you sure concerning the supply?|What i do not understood is actually how you’re no longer really a lot more well-favored than you may be right now. You are very intelligent.

Commenting closed.

Get started today with Qt Download now