More geeking...
Mar. 10th, 2004 05:19 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
I'm looking at writing some simple cross-platform GUI stuff, probably in C. Well, probably in C++ since all the decent cross-platform GUI libraries seem to require it.
Other than FLTK (which looks pretty good) and GTK+ (which sorta works on Windows, but it's not clear how well), anybody got any recommendations for a toolkit that will do (at a minimum) Linux and most common Windows flavors?
Other than FLTK (which looks pretty good) and GTK+ (which sorta works on Windows, but it's not clear how well), anybody got any recommendations for a toolkit that will do (at a minimum) Linux and most common Windows flavors?
no subject
Date: 2004-03-10 06:22 pm (UTC)no subject
Date: 2004-03-10 06:23 pm (UTC)no subject
Date: 2004-03-10 06:35 pm (UTC)no subject
Date: 2004-03-10 06:41 pm (UTC)I'm already less than thrilled that I'll probably wind up needing to pay for a Windows compiler. Yes, Cygwin exists, but it's not likely to be the most common case among Windows folks...
no subject
Date: 2004-03-10 06:49 pm (UTC)That's a minimum of $1550. Ouch! And that's if it takes me a year or less to finish everything I'll ever do on the app.
So yeah, that's not really an option.
no subject
Date: 2004-03-11 12:22 am (UTC)Hope this helps.
no subject
Date: 2004-03-11 06:07 am (UTC)no subject
Date: 2004-03-11 08:39 am (UTC)I actually gave up on Spiral when I found glib (part of the underpinnings of GNOME). As it turns out, they'd already done essentially everything I was doing with Spiral, and they maintained it without any effort on my part.
Sadly, GTK+ isn't very portable to Windows. There's a port, but it's apparently quite quirky, and it's way out of date.
no subject
Date: 2004-03-11 11:55 am (UTC)By the way, I can't get myself to stomach FLTK because I really hate its callback system. Specifically, callbacks are C function pointers, which means they can't point to non-static methods. If your code is likely to be OO, you'll find yourself writing static methods that decode void pointers and then call the methods you really wanted to call in the first place.
I really favor typesafe callback systems that know how to connect to either methods or functions. gtk-- has one, encapsulated in libsig++. It looks decent, but I swallowed the C++ template pill long ago. I'm a bit leary of gtk--, since it's just a C++ wrapper around gtk+. Side projects that try to keep alternate interfaces to active projects scare me.
Qt is very highly regarded in its cross-platformness, but as you say, it's not as free on some of the platforms, which makes it, in effect, not cross-platform. It does have a nice callback system, but it forces you to run a preprocessor on your code.
There's nothing out there that makes me happy. You're less unreasonably picky than me, so maybe you'll see through the flaws and find something that works. If you do, lemme know.
no subject
Date: 2004-03-11 12:00 pm (UTC)Bwah-hahahahaha!
Um, I mean, that's kind of a matter of opinion.
The other big possibilities that I've seen are the FOX toolkit and wxWindows. Haven't looked into either one enough to know whether I'll like it, though early signs on wxWindows aren't promising.
no subject
Date: 2004-03-11 03:51 pm (UTC)Hmm. a couple minutes with google suggests that wxwindows is the way to go if you already have a code base written using MFC. My suspicion is that writing for windows with the intent of porting to linux might be the way you have to go.
Whoops! Now that I think about it, I think he was using wxWidgets. http://www.wxwidgets.org/ I remember him complaining that it was a huge library and he wasn't able to just use part of it.
How complicated is the gui going to be? It might be easier to just write two?
no subject
Date: 2004-03-11 10:55 pm (UTC)wxWidgets is apparently just a rename of wxWindows. So it's basically the same thing. Yeah, it looks like a pain for that reason among others.
I actually have barely used MFC before, but I was distinctly unimpressed. In any case, this'll all be written from scratch unless I find something similar to base it off. I'm not optimistic about finding such a thing.
no subject
Date: 2004-03-11 11:56 am (UTC)no subject
Date: 2004-03-18 08:20 pm (UTC)Whatever happened to the toolkits of yore? Amulet, SUIT, ...
I've got no particular recommendations on C toolkits, unfortunately. GTK always seemed halfway reasonable, but I too am ignorant of its current state on Windows (or MacOS X, for that matter.)
no subject
Date: 2004-03-18 10:04 pm (UTC)Amulet, if memory serves, was horrendously, painfully slow. Don't know SUIT offhand.
SWT is, as you say, Java. As it turns out, that mostly disqualifies it from the application I have in mind by itself. Aside from questions of portability (where C is no better) and performance (which aren't totally crucial), there's the fact that a lot of the code will be implementing a network protocol on top of TCP/IP. While I keep hearing how good Java is for dedicated network applications, my memories of its network stuff aren't fond. Perhaps there's some easy way to do it that I'm missing.
But yes, I'm no friend of Java's. It's possible that my experiences have all been bad because I've been looking at Unix stuff mostly, and on hardware-constrained systems (not Java's strong point). But so far, I'm very deeply unimpressed with Java, and the idea of trying to get a nice, crisply-responsive application that does anything beyond telnet in that language just isn't appealing.
no subject
Date: 2004-03-18 10:48 pm (UTC)For deeply embedded stuff, I suppose I should point out http://www.amulettechnologies.com/. There have been similar things over the years, but honestly most aren't much more than anyone with a bit of knowledge of Perl, HTML, and serial communications could put together.
Borland has put a lot of effort into wxWindows -- I'd assume it is usable.
(Incidentally, Keith used fltk with POSE, and it wasn't too bad -- but then POSE didn't need much in the way of its own GUI.)
no subject
Date: 2004-03-19 07:27 am (UTC)wxWindows (now wxWidgets) is currently my most likely choice. The runner-up is FOX. wxWindows is a little older, better documented and better developed, and has more GUI builders available, which is nice. But FOX is overall pretty comparable.
GTK+ was one I really wanted to consider, but it's just not at that maturity level. And Qt winds up costing $1500+ per year to use on Win32, so screw that :-)
FLTK isn't bad. I have a definitely preference for a lib that uses the local widget set and builds on it rather than building its own, which is probably the only reason it wasn't selected.