View Full Version : Best cross-platform GUI toolkit?
Karim
03-24-2007, 10:59 PM
I've been reading about cross-platform development trying to come to some conclusions. The goal is to minimize development time while trying to create applications for as broad a spectrum of users as possible (likely Windows, Mac and Linux users). The GUI should appear native if possible.
I've never used Qt and judging by the price, never will, unless some future employer happens to swear by it.
wxWidgets is an open-source cross-platform GUI development kit that supports various languages and seems to have a large following. You also can't go wrong with the price.
CPLAT is a low cost alternative to wxWidgets and more attuned to the look and feel of the Mac which is important to Mac users, especially if it is the primary development platform.
Still, I think I'd be leaning towards Swing. I've been impressed with some of the GUIs I've seen developed in Java and anything that can run the JRE can run the application.
Thoughts?
Karim
03-25-2007, 09:18 PM
bump,
No one here does any cross-platform development?
sabotai
03-25-2007, 09:21 PM
Sorry, I don't
I think someone awhile back was making a baseball sim (and had a dynasty thread for it). I think I remember him using wxWidgets for his GUI. Maybe you can track that thread down, I think he talked about it.
sabotai
03-25-2007, 09:29 PM
dola,
Here it is: http://www.operationsports.com/fofc/showthread.php?t=31480&highlight=baseball+sim
Looks like he was using Qt.
flounder
03-25-2007, 10:39 PM
I've used wxPython, a wrapper for wxWindows, for a lot of things and found it to be fairly easy to make simple applications with it. I've never written anything really complex so I can't speak to how well it scales.
Eilim
03-26-2007, 07:01 AM
I believe QT has a "lite" version that is free, I'll have to do some digging on my hard drive for some other free cross-platform GUI toolkits I picked up a while back for one of my projects I was considering making multi-platform. If I remember right there are actually a decent amount of options out there it just takes a lot of searching and link chasing with some strong google-fu skills.
One thing you might want to do is check out sourceforge or whatever is the latest "in" open source repository and do a search for "GUI toolkit" and see what springs up. I used to find a lot of useful libraries and tools that way.
Sorry I couldn't be more of a help, but the only cross platform work I've really spent any time on was with the torque game engine, and I don't think thats what your looking for. ;)
lordscarlet
03-26-2007, 09:06 AM
I have never used a Java application that is not the slowest piece of crap I have ever used.
dixieflatline
03-26-2007, 11:00 AM
Highly recommend QT if you are planning on making the software shareware. At least as of middle of last year it was a far better product than wxWidgets. The price for QT pro seemed high to me which would be a turnoff if you are planning on selling the thing though. Those are the only two I have used so if you end up going in another direction please give us an update.
Surtt
03-26-2007, 11:09 AM
I have never used a Java application that is not the slowest piece of crap I have ever used.
1. design a language that is cross platform.
2. try to include packages for every conceivable need 99.9% of which will not be used(be sure to make them as hard to use as you can, though)
3. make it interpreted, not compiled.
lordscarlet
03-26-2007, 12:40 PM
1. design a language that is cross platform.
2. try to include packages for every conceivable need 99.9% of which will not be used(be sure to make them as hard to use as you can, though)
3. make it interpreted, not compiled.
Well, this is my "setup" question whenever I talk to a java developer. "Does java suck or do java developer suck." It's intentionally a stupid question while being insulting at the same time. :) But the applications I normally use have little to no need to be cross platform. The interfaces are so clunky I think you're better off writing something either for a specific platform or maybe with a C library (or some such) and rewriting the UI for each platform. For instance, the CMS we purchased at my employer has no need for a cross platform editor. The 508-checking app we purchased probably doesn' tneed to be, but I suppose could. In reality there aren't too many government agencies using a non-Windows desktop. I can rarely complete a check of a site before it crashes.
gstelmack
03-26-2007, 12:59 PM
The only project I've ever worked on that was a complete and utter failure was a Java business app. The backend and middle-tiers worked great, but we could NOT get the UI to work to save our lives. Various platforms had various breaking bugs in the Java libraries themselves. Mind you, this was in '96 (pre-dating SWIG), but it just showed how much of a joke Java was at the time. You just couldn't do a serious GUI with it and hope to have it work stable.
I also think Sun has killed the language by stagnating it. I don't think C# would have existed if Sun had been willing to keep working on it, but as it is C# is everything Java should have been (except for the cross-platform aspects of the library). I never understood why Java did not have first-class support for enumerations, for example.
lordscarlet
03-26-2007, 01:31 PM
And there are implementations of c# GUIs for linux/cross-platform. I don't know if they're any good, but they exist. Cross-platform is a nice idea, but it just doesn't work. As you said, the Java libraries themselves don't suck, just the GUIs. So write all of your business logic in a separate "cross-platform" library and do 2/3 GUIs. I know that's not an easy task, but when I hear a desktop app is Java I do everything I can to not use it at all.
Surtt
03-26-2007, 04:32 PM
While we a kicking JAVA
final int Calendar.JANUARY = 0
final int Calendar.FEBRUARY = 1
ect...
Real World
JANUARY = 1
FEBRUARY = 2
ect...
Why?
Karim
03-26-2007, 06:45 PM
Thanks for the responses.
I've read about Qt lite and will have to take a look at it. I used wxWidgets for a traffic simulator that never got off the ground and that's always an option.
Didn't Shaun Sullivan use Java for one of his games? It may have been another SMG developer that posts here. I remember downloading the demo and not believing the UI was done in Java. Good things can be done in any language.
My perspective is simply is it better to learn the ins and outs of a GUI for a specific platform when I can instead use a cross-platform toolkit that abstracts some of the complexity away and gives me an end-product that can be deployed across multiple platforms?
I guess it comes down to expertise, time and cost. And with Windows' market share, do I really want to make sure my application can run on some obscure distribution of Linux?
sabotai
03-26-2007, 08:39 PM
Why?
Zero-based arrays (which is the standard in C++ too) I would imagine. You get used to them.
Sebastian Palkowski
03-27-2007, 07:29 AM
I've been reading about cross-platform development trying to come to some conclusions. The goal is to minimize development time while trying to create applications for as broad a spectrum of users as possible (likely Windows, Mac and Linux users). The GUI should appear native if possible.
I've never used Qt and judging by the price, never will, unless some future employer happens to swear by it.
wxWidgets is an open-source cross-platform GUI development kit that supports various languages and seems to have a large following. You also can't go wrong with the price.
CPLAT is a low cost alternative to wxWidgets and more attuned to the look and feel of the Mac which is important to Mac users, especially if it is the primary development platform.
Still, I think I'd be leaning towards Swing. I've been impressed with some of the GUIs I've seen developed in Java and anything that can run the JRE can run the application.
Thoughts?
Hi,
I´m the guy with the Baseball Manager Project (which was linked earlier in this thread) and I can only recommend QT! It is a great tool to work with, the documentation is great, you can use it on all systems and the Opensource version has all the features of the comercial version.
EDIT: I saw your comment on the price. If you need a commercial version it is not cheap. If you still have interest in purchasing Qt write me a PM, maybe I have some usefull informations.
palli
Surtt
03-27-2007, 11:32 AM
Zero-based arrays (which is the standard in C++ too) I would imagine. You get used to them.
I understand how it got to be 0, my question was why.
I know an array starts at offset zero, but these are predefine constants.
To saved them selves 16bits of memory, they cause a bunch of headaches in the real world. If they really need to they should have just done the translation in the class instead of forcing everyone else to do the translation for them.
I was using this as an example of how Micky Mouse Java is.
Q:What month would you like to run the report? A:1
Now instead of a simple case statement I have to subtract 1 from there response.
Not a big deal, but you need to know about it and it just makes it harder to use. That is the type of place where bugs sneak in. Java seams to be full of little "got ya"s.
Karim
03-27-2007, 01:29 PM
Thanks palli. I'm definitely going to give the opensource version of Qt a look.
vBulletin v3.6.0, Copyright ©2000-2026, Jelsoft Enterprises Ltd.