User Tools

Site Tools


qt:eclipse_qt_integration_for_c

Eclipse + Qt Integration for C++

The “other” classic Java IDE, Eclipse, also has an option for Qt support, with the support coming from no less than Nokia itself. Installing everything struck as a bit more painful than the other options. First you need to install Eclipse–but, oh, which version? Eclipse makes several different versions of the IDE available, and it's not at all clear what you're supposed to do if you want to use one IDE to develop Java, Qt C++, and maybe other programs.

I ended up downloading the vanilla “Eclipse for Java” package and used the “Install New Software…” dialog directions described here to add C/C++ abilities. After that I downloaded the archive from Nokia and dropped it into the appropriate place.

I've tried Eclipse for Java development a few times in the past, and each time I've walked away from it. It uses SWT, so it integrates look and feel wise fine into any supported platform. Mostly. However, one of the problems I had with this version of Eclipse is that one or more of it's many splendored panes seemed to disappear at will. I'm not talking about it changing “perspectives.” I'm talking about panes disappearing when just clicking in another pane–without and seeming reason. Maybe there's something broken in my setup. Let's assume so and go boldly forward.

A problem that I've had with Eclipse in the past regards its approach to UI design. It seems to want to assert it powerfulness by showing you its mind-boggling power all the time. I have found the UI too distracting, too full of options, and just too “powerful”. I keep hoping that I will evolve to a point where I am not intimidated by such expressions of powerfulness, but I'm not there yet. The version of Eclipse that I tried here is easily as “powerful” as any of the others I've tried in the past.

Things aren't looking good.

Ok … let's try to put these concerns behind us and move on to the Qt integration. I set up a simple project without any signal/slot connections and tried a debug. It generated a cryptic warning and then rendered my window. Success, I think. Regarding the user experience of the Eclipse plugin, it integrates the equivalent of Qt Designer into the Eclipse UI. But while all of the features available in the standalone seem to be present in the plugin version, accessing the features isn't as convenient. For example, when you want to open signal/slot editing mode, you must do so from the menu bar because there's no toolbar. And when I tried to do this from the menu bar, Eclipse froze.

This ended my investigation into Eclipse as an option for Qt development.

<reboot>

I think I've been too tough on Eclipse. I just gave it another go and it seems to be behaving a little less unpredictably. I'm not nearly sold on the idea though, just that I'm not totally in a veto state over it.

Pros

  • “Powerful”
  • Qt support is (semi)official
  • The Qt templates are good
  • Support for PyQt through PyDev as well

Cons

  • Quirky, often frustrating UI
    • Closing a project leaves it visible in the workspace.
      • Opening a new workspace resets everything
    • Changes in “perspective” can be bewildering.
      • There's way too much going on in a perspective
      • It's easy to change/break a perspective
  • The integrated Qt Designer has usability issues. You can set the IDE to use the “System editor” for a file, but then it doesn't detect changes. Re-running Qmake (or possibly some other build-oriented directive) gets the changes.
  • The debugger stops at at QApplication a(argc, argv); A break on new thread issue?
  • You need to manually switch back to your editing perspective after debugging.
  • PyDev is totally WTF.

Thoughts

If one or more of the problems above is solved (e.g., getting the debugger to stop breaking unless you explicitly add breakpoints) it may be an alternative. But given PyDev's bewilderification, probably not.

qt/eclipse_qt_integration_for_c.txt · Last modified: 2011/04/07 18:46 by mithat

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki