[ACCEPTED]-Do you use Qt and why do you use it?-qt-jambi
I have been using Qt for several years now 31 for commercial development and have been 30 very happy with it.
One of the nice things 29 with Qt is that it provides a large set 28 of libraries as well as the GUI stuff (eg 27 XML parsing, threads, networking), all in 26 a consistent style and all multi-platform. This 25 means we rarely need to use other libraries, though 24 we do use boost for some things.
Another 23 very important factor for us was internationalization. In 22 a previous, MFC based application we had 21 to maintain 2 localized versions, for the 20 two languages we support. In our Qt based 19 app we just have the one version.
- The Qt translation system, using linguist is easy to use and makes supporting multiple languages easy (of course you still have to translate the strings which is a lot of work!)
- The GUI layout system where the widgets resize themselves according to a layout makes everything much easier. In different languages the length of the strings are different. With fixed size widgets (like MFC) each dialog needs to be adjusted for each language, otherwise parts of labels get cut off. With Qt they resize themselves. Of course, there are cases when it does not work exactly right but it still makes everything much easier.
- QString does everything in Unicode and handles the conversions from different codecs very easily.
One thing 18 that has been very valuable is the access 17 to the source, although e this is certainly 16 not unique to Qt. On several occasions the 15 ability to check the Qt source has explained 14 some strange behaviour or given a clue how 13 to achieve something.
We have found a few 12 bugs in Qt, some of which have been fixed 11 after reporting to Trolltech. In other cases 10 they have suggested a work around. These 9 have all been fairly obscure and not had 8 a major impact on our development.
One of 7 the main downsides to Qt would be the lack 6 of 3rd party libraries for use in commercial 5 applications. However, Qt is fairly complete 4 so for us it has not been a big problem, though 3 that will depend on which type of application 2 you are developing.
I have not used Jambi 1 either.
I've used Qt on a couple of projects I did 14 in c++ on several platforms over a period 13 of seven years. I think it works pretty 12 well and definitely was quicker for me to 11 develop a decent GUI app on the Mac than 10 plodding through a language I didn't know 9 (Objective-C) at the time.
I think the signal/slot 8 mechanism is a bit funky but isn't horrible. Once 7 you're use it for a bit, it's not a show 6 stopper. The connection stuff is easy to 5 bungle up (or at least it was) and it's 4 always good to check the return on those 3 because your app will go merrily on its 2 way and not tell you that it didn't work.
I've 1 never used jambi.
Here are some of my Pros and Cons with Qt:
I 61 know this one is always used, but after 60 going back and forth between Windows and 59 Linux with Qt, it's amazing how little I 58 have to do to get up and running. I think 57 this is helped by the fact I only use Vim 56 with Qt Designer.
This is one of my favorite 55 aspects of Qt. After doing work in wxWidgets, FLTK, etc., I 54 get so tired of messing around with different 53 build systems and I don't want to manually 52 create my makefiles. I currently use CMake 51 on anything other than Qt right now, but 50 I think I'm slowly moving even Qt over to 49 CMake. However it's just so easy to get 48 going with QMake.
I looked at a couple 47 other C++ unit testing frameworks and when 46 I created my tests using QTestLib, it felt 45 very similar to NUnit(C#) and within minutes 44 I had several passing tests. I also noticed 43 that it would be very easy to create my 42 own continuous integration environment.
Closest to Java and .Net 41 in productivity
The biggest thing I hear/read 40 people say about C++ is, "I can be 39 more productive with Java or .Net". From 38 personal experience I can get a prototype 37 of an application running in Qt using Vim 36 and Qt Designer, before Eclipse or Visual 35 Studio even load. I also get a very similar 34 set of libraries in Qt that I have in .Net 33 or Java and if it's not there I can leverage 32 the existing C++ code out there.
This 31 is the biggest factor I can think of right 30 now. However, the cost is worth every cent, um 29 if I knew how many cents I had to save up 28 without making a call to a sales rep. I 27 purchased a license back in the day when 26 they had their small business discount and 25 it was worth it then, I would've paid three 24 times as much and I think that's the current 23 price.
Develop anywhere with commercial 22 license
I would love to be able to develop 21 on any platform, but build and sell for 20 another platform. For example, develop 19 on Linux, then build and deploy on Windows 18 if you just have the Windows commercial 17 license. From what I know, you can only 16 develop and build a commercial application 15 on the platform you have a license for.
Vendor 14 lock-in
Well sort of, this is more of a 13 personal con. I don't like being tied to 12 a specific vendor because I get side tracked 11 by the company direction and product direction. TrollTech 10 was purchased by Nokia, is this good or 9 bad I don't know, but a company that size 8 can do evil things.
I think I'm done for 7 now :). Oh, I haven't used Jambi but I'm 6 really interested in doing a couple prototype 5 projects to find out how easy it is to use 4 a plugin developed in C++ with Jambi. Especially 3 using Jambi as a web interface with C++ plugins.
To 2 be honest I haven't read much on it, so 1 it may be impossible or very easy.
I used Qt in a previous job. I'd only had 47 the absolute briefest of contact with Qt 46 several years prior to that, so I was pretty 45 much a Qt newb.
When I started I was told 44 to choose my language and environment, but 43 cross-platform support was desirable. I 42 tried Qt and Java, and even gave C# a go 41 just for the heck of it. I gave myself 40 two days to evaluate each option.
Maybe I 39 was slightly biased with my history as a 38 C++ developer, but after spending time on 37 each option Qt was the only one that showed 36 any hints at being useful without a long 35 learning curve.
The documentation provided 34 with Qt and the example applications made 33 it very easy for an experienced developer 32 but Qt beginner to get up and running very 31 quickly. I had UI prototype/mockups of 30 the end application done by the end of my 29 trial period. With Java/Eclipse, Java/SunStudio 28 and C#/VS.net I had trouble getting anything 27 nontrivial happening in that time.
Signals/slots 26 took some getting used to, but it wasn't 25 too bad, and I wrote some simple wrappers 24 to assert when connections failed to stop 23 silly typos from stopping the app. from 22 working.
The other thing I liked is that 21 Qt had almost everything I needed. You 20 name it - storage, networking, GUI, threading, containers 19 - Qt has a class to deal with it. Which 18 IMHO is important because mixing libraries 17 can sometimes cause problems.
Having the 16 source code to Qt was a big plus, one for 15 just plain interest's sake, but also it 14 allowed me to compile Qt using the compiler 13 and settings of my choosing, including a 12 debug version for use during development.
I 11 also found Trolltech's support to be fairly 10 good. I raised a couple of bugs on Qt, one 9 of which was fixed and released whilst I 8 was still working on the project (only a 7 6 month job).
The only negative I can recall 6 was the difficulty in debugging Qt objects 5 (using VS) - there is a Qt plugin for VS 4 that can examine Qt objects but I was using 3 the free version of VS and plugins don't 2 work for it. But that wasn't Qt's fault.
I 1 haven't used jambi so can't comment.
On C++ your only other alternatives are 5 MFC and wxWidgets.
QT / wxWidgets is largely 4 a personal preference. I do think QT is 3 a clean design with good documentation.
QT 2 costs about one month of developer salary 1 if you aren't using it for GPL.
I have been using Qt for over two years 4 now.
Things I like on Qt are:
- Easy GUI programming (compared to MFC), Qt Designer
- Nice container classes
- Nice graphics scene framework
- Excellent documentation with useful examples
- Translation support
- Good technical support
I can highly 3 recommend the Qt Developer Days. If you have a chance to 2 take part, then do it! Lots of nice and 1 very interesting talks there.
Qt is a very nice library, but it has an 2 expensive per-seat developer license, so 1 it's not always useful for all projects.
More Related questions