tags:

views:

930

answers:

7

We are selling an image processing application (about 120k lines of code) developed with wxWidgets. We planned everything to be as most cross platform as possible in case the porting from Windows to other OS was needed. And in fact we are going to realiza a version for Mac. We haven't tested wxWidgest on Mac yet, but we haven't read very good things about it.

In general, do you think is it worth to port from wxWidgets to QT? Do you believe it will be an hard and long job?

Is QT for Mac much better than wxWidgets implementation?

Is QT much more productive that wxWidgets?

I would like to add that we would'n like to keep code bases for gui, so the choice is just wxWidgets vs QT.

+2  A: 

I recommend switching over to Qt. wxWidgets is a GUI toolkit, whereas Qt is an application framework with much, much more features.

I can't say anything about their mac implementations, but i can clearly say that i am far more productive using Qt. When i was using wxWidgets, i was a student and then when i got a job, i started using Qt.

wxWidgets gave me a feeling of incompleteness, but as i said, this may be caused by the fact that i was an inexperienced student but nonetheless, i think Qt is way better.

erelender
wxWidgets is actually a lot more than a GUI toolkit. Like Qt, it provides a lot of non-GUI utilities designed for achieving greater platform independence and compliance.
Steve S
I work(ed) in a middle-sized (~40K lines) wx app and other wx apps, and i can only say it's a pain. wx has much bugs. On the contrary, i worked with Qt on one fun app, and i can only say that Qt is a joy to work with.
Johannes Schaub - litb
+4  A: 

Test your application on Mac, and then decide. If there are only a few wrinkles to iron out, why put in all that extra work to switch toolkits?

It will be a long hard job. Without knowing more about your application and situation, it is hard to say whether making the switch is worth the effort. I do know that I would rather work on a Qt app than a wx app.

I have a friend who recently switched a significant wx application to Qt, and he is quite happy with the change. Mac support is one of his (boss's) important features, but I think wx's support for Mac was adequate, if not stellar.

My experience has been that Qt is definitely more productive than wx.

Steve S
+3  A: 

It is worth noting that wxWidgets on the Mac is transitioning to Cocoa. This should be done for wxWidgets 3.0, but is testable with the development release wxWidgets 2.9 now. Is Qt Cocoa or Carbon based?

We have an application that runs under Windows and the Mac, built using wxWidgets. The application performs very well on both platforms.

dtw
+2  A: 

Until you have investigated more and have a good reason(s) to switch toolkits, then absolutely not.

We are using wxWidgets for Linux & the like, Mac, and Windows. It's a great toolkit and certainly much more than just a GUI.

NuSkooler
+1  A: 

Like dtw and NuSkooler, we are using wxWidgets on Mac (carbon/cocoa), Linux (32/64), Windows (32/64) and all works fine. In wx, we use gui, filesystem, threads, html libs.

Johan Moreau
A: 

+1 for Qt

I have used both wxWidgets and Qt extensively on different projects for the Windows platform writing C++ applications.

Having used both and compared the two after, I would absolutely use Qt over wxWidgets. You need to consider (as some of the others have pointed out) if the re-factoring effort is is something you have time for and are willing to do.

Also consider the cost -- this may not matter in your situation, but unlike wxWidgets, the Qt Library is not free for commercial use. I have spoken to TrollTech at length and read through their licensing agreement to verify this; you definitely have to pay unless you GPL your application.

Regarding licensing see:

http://qt.nokia.com/about/licensing/frequently-asked-questions

"Will you continue to offer Qt under a commercial license?"

"Yes, absolutely. Our commercial licensing will continue."

"Why would I want to buy a commercial license? What is the difference?"

"The commercial Qt license includes email support, access to upgrades and allows you to develop fully closed source software. The LGPL carries some restrictions regarding the ability for users to relink libraries and other restrictions that may impose architectural requirements that some organizations might not be comfortable with."

Qt is definitely worth the money though, even if you are not doing cross-platform development. It has a lot more and better documentation. Qt and wxWidgets are not perfect... The fact that they are bloated and provide APIs for networking, data structures, and database handling is not necessarily a good thing. Sometimes sticking with the STL or Boost libraries (if you're coding in C++) is a much better solution.

Good luck.

-bn

bn
Qt is LGPL now. That means you can freely do commercial development. The only source you would have to make available would be modifications you made to Qt itself (very rare).
Andrew Medico
This is not quite accurate, see the edit above please.
bn
A: 

+1 for wxWidgets. A big project of mine used wxWidgets and found it a nice framework to use, and an easy enough framework to get your head around to modify if you need to (to support Mac specific features).

Try it: you could be 80% there when you first generate the binary.

RyanWilcox