qt:qt_ide_options
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
qt:qt_ide_options [2011/04/07 21:45] – [Qt IDE options] mithat | qt:qt_ide_options [2011/12/03 18:36] (current) – mithat | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== Qt IDE options ====== | ====== Qt IDE options ====== | ||
- | * [[#Qt Creator]] | + | Unless otherwise noted, stuff below is based on experiments done in the late spring of 2011 on Debian and/or Ubuntu. |
- | * [[#Netbeans + C/C++/ | + | |
- | * [[#Monkey Studio]] | + | ===== Executive summary |
- | * [[#Eclipse + Qt Integration for C++]] | + | For C++ development with Qt, Qt Creator is the way to go, despite its UI quirks and C++ only support. Netbeans with C/ |
- | * [[#Qt Designer + other tools]] | + | |
- | * [[# | + | |
- | * [[#HaiQ]] | + | |
- | + | ||
- | Note: I'm not considering KDE-based and Windows-only solutions. I may not consider GTK-only solutions as well. The focus below is on C++ development because it is Qt's native binding. Some Python thoughts are sprinkled in as well though. | + | |
- | + | ||
- | Executive summary | + | |
===== Qt Creator ===== | ===== Qt Creator ===== | ||
- | Since this IDE is made by the Qt team for Qt development, | + | Since the [[http:// |
- | First, the UI is quirky. The look and feel doesn' | + | First, the UI is quirky. The look and feel doesn' |
Second, the equivalent of Qt Designer is built in, but I still prefer Qt Designer for design work because (1) screen real estate isn't eaten up by the IDE's other bits and baubles and (2) the form modeling in Qt Designer gives you a fake title bar that makes visualizing the final form easier. You //can// open any *.ui file in Qt Designer from within Qt Creator via the context menu (much as you would to hand-edit or view the XML in an external editor), but it's not necessarily the easiest thing to do. It would be nice if the Qt Creator had a "open ui files in Qt Designer by default" | Second, the equivalent of Qt Designer is built in, but I still prefer Qt Designer for design work because (1) screen real estate isn't eaten up by the IDE's other bits and baubles and (2) the form modeling in Qt Designer gives you a fake title bar that makes visualizing the final form easier. You //can// open any *.ui file in Qt Designer from within Qt Creator via the context menu (much as you would to hand-edit or view the XML in an external editor), but it's not necessarily the easiest thing to do. It would be nice if the Qt Creator had a "open ui files in Qt Designer by default" | ||
Line 31: | Line 23: | ||
==== Cons ==== | ==== Cons ==== | ||
* Quirky UI | * Quirky UI | ||
- | * At the moment, no support for PyQt/ | + | * At the moment, no support for PyQt/ |
+ | ===== Eclipse + Qt Integration for C++ ===== | ||
+ | |||
+ | The much loved/ | ||
+ | |||
+ | I ended up downloading the vanilla " | ||
+ | |||
+ | 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, | ||
+ | |||
+ | 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' | ||
+ | |||
+ | This ended my initial investigation into Eclipse as an option for Qt development. In my second investigation, | ||
+ | |||
+ | ==== Pros ==== | ||
+ | * " | ||
+ | * 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 " | ||
+ | * There' | ||
+ | * It's easy to change/ | ||
+ | * The integrated Qt Designer has usability issues. You can set the IDE to use the " | ||
+ | * The debugger stops at at '' | ||
+ | * You need to manually switch back to your editing perspective after debugging. | ||
+ | |||
+ | ==== 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. | ||
===== Netbeans + C/ | ===== Netbeans + C/ | ||
- | Apparently, the classic Java IDE [[http:// | + | Apparently, the other classic Java IDE [[http:// |
- | Netbeans itself is Java/Swing based, so that means the IDE UI will look a bit goofy, but I personally < | + | Netbeans itself is Java/Swing based, so that means the IDE UI will look a bit goofy, but I personally < |
I sorta like this setup. I can get my brain around it, it seems full-featured, | I sorta like this setup. I can get my brain around it, it seems full-featured, | ||
Line 46: | Line 68: | ||
* Support for Python development is allegedly available, but development may be stalled. | * Support for Python development is allegedly available, but development may be stalled. | ||
* //Automated package building in tar, deb, etc. formats(!)// | * //Automated package building in tar, deb, etc. formats(!)// | ||
- | * Pretty [[http:// | + | * Pretty [[http:// |
- | * But I've had trouble getting it going | + | |
* It's Netbeans--it won't become abandonware. | * It's Netbeans--it won't become abandonware. | ||
- | * But the C/ | + | * But the C/ |
==== The cons ==== | ==== The cons ==== | ||
* The project structure seems to be a bit goofy. Rather than having a '' | * The project structure seems to be a bit goofy. Rather than having a '' | ||
- | * Less-than-optimal | + | * Swing' |
* You need to manually add code to the project that a more highly integrated setup (e.g., Qt Creator) would normally do for you, such as: | * You need to manually add code to the project that a more highly integrated setup (e.g., Qt Creator) would normally do for you, such as: | ||
* to the '' | * to the '' | ||
Line 89: | Line 110: | ||
* No profiling | * No profiling | ||
* Untested code completion | * Untested code completion | ||
- | |||
- | ==== TODO ==== | ||
- | * Add Beaver Debugger via PPA and see how well it works | ||
==== Thoughts ==== | ==== Thoughts ==== | ||
Lack of debugging makes this less than appealing for serious work. Debugging is not available at all for PyQt projects--in spite of the good PyQt templates, etc. I really hope to see this IDE develop. | Lack of debugging makes this less than appealing for serious work. Debugging is not available at all for PyQt projects--in spite of the good PyQt templates, etc. I really hope to see this IDE develop. | ||
- | |||
- | |||
- | ===== Eclipse + Qt Integration for C++ ===== | ||
- | |||
- | The " | ||
- | |||
- | I ended up downloading the vanilla " | ||
- | |||
- | 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 " | ||
- | |||
- | 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, | ||
- | |||
- | 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' | ||
- | |||
- | This ended my investigation into Eclipse as an option for Qt development. | ||
- | |||
- | ''< | ||
- | |||
- | 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 ==== | ||
- | * " | ||
- | * 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 " | ||
- | * There' | ||
- | * It's easy to change/ | ||
- | * The integrated Qt Designer has usability issues. You can set the IDE to use the " | ||
- | * The debugger stops at at '' | ||
- | * 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' | ||
- | |||
===== Qt Designer + other tools ===== | ===== Qt Designer + other tools ===== | ||
Before there was Qt Creator, I suspect a lot of people were using Qt Designer with other tools that are intended for general use but don't offer explicit Qt support. This remains a valid approach, but be aware of the pros and cons. | Before there was Qt Creator, I suspect a lot of people were using Qt Designer with other tools that are intended for general use but don't offer explicit Qt support. This remains a valid approach, but be aware of the pros and cons. | ||
- | One pro is that this is the most portable approach. Don't like the editor anymore.? No probs. Another is that this approach will force you to learn more of the Qt infrastructure at the beginning rather than when something breaks and your annoyance level is high. | + | One pro is that this is the most portable approach. Don't like the editor anymore.? No probs -- just switch. Another |
- | On the con side, you won' | + | On the con side, you might not get get very complete code completion. Also, the lack of automation when adding forms, etc. means you will be doing a fair amount more manual coding. Both of these will slow you down and make you less excited about making changes. |
+ | ===== Code:: | ||
+ | For some reason, I didn't do any testing with [[http:// | ||
===== QDevelop ===== | ===== QDevelop ===== |
qt/qt_ide_options.1302212726.txt.gz · Last modified: 2011/04/07 21:45 by mithat