Fog Creek Software
Discussion Board




Qt : Panacea or Menace?

I've got a medium sized MFC application that a customer wants me to port to the Mac. I've also had nibbles on it for vairous embedded platforms (phones and pda's).

It's got a clean seperation between the functionaliy dll an the MFC GUI, so I could move the GUI first and then then then port the functional part.

It is a consumer mass market product for that has some custom eye candy kind of GUI objects, it's not a utilitarian industrial interface.

I looked at Qt when I started this project a few months ago, but decided I didn't want to spend the money.  At that time I didn't think there was a cross platform market, but it looks like I was wrong about that.

I could absorb the cost now , especially if the learning curve from MFC isn't too steep.

Is Qt a good tool for cross platform work with a "consumer levell" GUI?

Jim Howard
Friday, July 16, 2004

I looked at Qt a while ago, but didn't like the idea of programming a GUI in C (or C++, whatever) because it's such a clunky language to use.

You might try wxWindows (or wxWidgets as its called now). I like using it in Python with the wxPython wrapper.

Tom H
Friday, July 16, 2004

Most Qt applications I've seen for the Mac look a little weird. I think you'd probably be better off with something else.

Actually, you might find implementing a native Mac GUI surprisingly easy, if you use the Cocoa framework. You can download Apple's developer tools at http://developer.apple.com/

-Mark

Mark Bessey
Friday, July 16, 2004

Perhaps Mono might be handy.  Version 1.0 has just been released and "...allows developers to write rich client, web services and server-side applications and deploy them on Linux, Solaris, MacOS X, Windows NT/XP and various other Unix systems on a variety of architectures".

http://www.mono-project.com/about/index.html

John Rusk
Friday, July 16, 2004

Menace.

Clutch Cargo
Friday, July 16, 2004

I think you will find wxWindows/wxWidgets is closer in style to MFC than Qt is, you might be better looking their first.

Tony Edgecombe
Saturday, July 17, 2004

QT is neither, it is a consistent Gui-toolkit with a cleaner API than MFC. The downside of QT is cost.

Not going to tell my name!
Saturday, July 17, 2004

I bought a MAC in 1985, but have long since forgotton what little I ever knew about developing for them.

I know I"ll need to get a Mac guy on my team, but I'm trying to get smart enough on this to at least an intelligent interview question.

I'll spend the money if there is a system that would let me generate native feel guis for both Mac and PC from the same code base.

I'm skeptical about mono, but others have suggest it also so I'll take a serious look at that also.

Jim Howard
Saturday, July 17, 2004

Yep, wxWindows all the way. Results in some very nice clean portable code especially if you use the wxPython bindings.

Matt
Saturday, July 17, 2004

if it's just a mac gui, and you already have a windows gui with a clean separation between ui & the code, why not just build a separate mac ui? make it look and feel 'mac-like' too.

what you learned in 1985 won't be much use anyway, i don't think the NeXT existed yet. what little i've done with Cocoa and Objective C and NIB leads me to believe that building Mac UI now is remarkably simple.

of course, having two UI mechanisms means more maintenence and different support costs (support people need to know both UIs, but users don't need to learn the weirdness from whatever cross-platform system you chose).

mb
Saturday, July 17, 2004

You could try RealBasic - That could be your portable UI, then you'd just have to call into shared libraries on each platform (I believe the Pro version supports that functionality).

-Mark

Mark Bessey
Saturday, July 17, 2004

Thanks to all for the excellent comments.

"if it's just a mac gui, and you already have a windows gui with a clean separation between ui & the code, why not just build a separate mac ui? make it look and feel 'mac-like' too."

I figure that the functionality will have to be platform specific, since it talks to ethernet and wireless lan cards and other devices via device drivers.  I was hoping to have one gui so that one guy could do both guis, and one each windows and mac guys could work on the functionality.

If there is no good cross platform gui then I wind up having to have a seperate mac progam, so I have to everything twice and probably need at least another 1/2 person. 

And of course, those high strung mac zealots hate it when you cut them in two.  But then again they all do drugs and might feel less pain..... hmmmm.

Jim Howard
Sunday, July 18, 2004

If your project can wait a bit, Gupta (Www.guptaworldwide.com) is releasing a cross platform application. Its called Team developer and currently runs on windows.

Gupta kicks the ass out of any other programming language, including visual basic.

E Mail Gupta and register for the beta. I think the Linux version is out next month.

Karthik
Monday, July 19, 2004

I have been using Qt for a while, for the UI of a "mass-market" shareware software.

I think it has some strong points: it's very well documented, it has some useful utility classes (such as classes for XML support, thread support, I/O). The internationalization support is also very good, thanks to a well-designed QString class and the Linguist tool.

On the other side, their GUI builder is not perfect and some features (like the layouts or the signals-slots mechanism), although useful, may seem a little weird for you if you come from a MFC background.

Our software currently runs under Linux and Windows. The application was designed from the beginning to be portable, and the port was very done very easily. I have not tried it on the Macintosh. Our GUI is simple without any fancy widgets.

Maybe you can try the new version of Qt (4.0) and see how it looks on the Macintosh.

F.P.
Monday, July 19, 2004

*  Recent Topics

*  Fog Creek Home