Hello,

Can anyone suggest a GUI library that meets the following criteria?

* Cross-Platform
* Doesn't control the main loop
* Not 100% object-oriented; similar to Xlib :)
* Not many pointers please (like FLTK that every object is a pointer)
* Free to use for closed source and open source software
* Lightweight

Thanks!

Ultimate++. It is well featured cross platform. I do not recommend gtk or qt coz they are lgpl. Vcf, efl, x, upp are bsd licence or similar. But i dont think x server makes sense

Ultimate++ seems just like wxWidgets, they are confusingly object-oriented. Is there a library that's similar to Xlib but cross-platform? Xlib's API is slightly object-oriented but not as confusing as the other libraries. It's also lightweight.

Please help.

BTW, what's bad with LGPL?

My Dad, a smart man, told me, "What a developer already knows or uses is sufficient... the time spent learning what he doesn't know or use is wasted". This is Dilbert Speak for, "Time moves on, bite the bullet.. someone's found a more expeditious, thoughtful solution to your stated goal. The poke in the eye is stepping back toward the drawing board to implement it."
Question: What is the most efficient, concise and expedient way to provide your solution to those who want it?

BTW - I'm a DOS dinosaur, C programmer from the neo-lithic.

You will know when you find it... hint.. C with classes.

Um, is that supposed to answer my question?

Cool quotes, they actually support my topic, but I'm looking for an easy-to-use GUI library.

Thank you for your time.

I, too would like such a library. I'm trying to figure out a way to use all the C++ I learned to make (possibly) multi-platform applications. I don't mind OOP, I don't mind pointers and I wouldn't even mind a big ol' IDE if the stupid thing WORKS!!
let's just say I've tried a few IDEs that don't work and were nothing more than a waste of bandwidth to download them.

Ultimate++ seems just like wxWidgets, they are confusingly object-oriented.

So you hate OOP? You are in trouble then! Only toolkit that AFAIK is not OOPed is GTK+.

Why is wxWidgets so confusing to you? Lazy to learn classes and pointers?

@ffej2ffej:
If you don't mind OOP and pointers, I would recommend Qt (it is easy, cross-platform, and comes with very decent, lightweight IDEs for windows, Mac and Linux).

@OP:
Just use SDL (Simple Directmedia Layer). It is not object-oriented at all (essentially a C library), has those good'ol' fashion handles and stuff instead of pointers. It is essentially has features similar to the win32 API, but for any platform (but you don't get any GUI elements really, although I'm sure there are plenty of add-on libraries that have buttons and menus and stuff).
But I would encourage you to face your fear of OOP and save yourself the trouble of trying to develop a GUI for your application in procedural programming (it will be a nightmare for you..). GUI programming is one of the prime applications where OOP makes a hell of a lot of sense (as opposed to other applications like numerical analysis where it still makes sense, but to a lesser degree).

Comments
Well said

Ok, I downloaded and installed QT Creator. Does it work? OF COURSE NOT!!!! All it tells me is to run make install. What does this mean? Is make a program and install an argument to this program? Should I run this command from someplace in particular? I've tried it from more places than I can remember and all shell can tell me is that it doesn't work.
Would it kill the people who distribute Code::Blocks and QT Creator and Wx???, etc. to include INSTRUCTIONS ON HOW TO MAKE IT WORK? Are you kidding me?
I don't think you should be required to study a product FIRST before you can install it and use it. I think things like this should take care of themselves or at least include instructions for novices like me on how to do it!

"make" is one of the most common build tool for all medium to large scale programs. They don't give the instructions on it because very few programmers who go out to get Qt creator are not already very familiar with "make". And if you are a *nix user, that is a very common way to install software.

What you need to do (assuming you are under Linux), is go (in the terminal) to the folder in which you extracted the downloaded package, type "make" (if you downloaded the source files), then "make install", and you are done (NB: don't type in the quotation marks, of course). You can most probably also get it directly from the package repository with aptitude, with the following command (from any location, but from the terminal): "sudo apt-get install qtcreator", type in your password, and you're done.

If you are under windows, well, I'm sure the installer is a normal one (next, next, next... finished buttons!).

Of course, you need a compiler installed on your computer! Linux: gcc (install with "sudo apt-get install build-essentials") or Windows: MinGW

Hello,

Can anyone suggest a GUI library that meets the following criteria?

* Cross-Platform
* Doesn't control the main loop
* Not 100% object-oriented; similar to Xlib :)
* Not many pointers please (like FLTK that every object is a pointer)
* Free to use for closed source and open source software
* Lightweight

Thanks!

A solid GUI library that doesn't use pointers and isn't OOP? You're in trouble lol Like other people said just learn OOP and hone your pointer skills.

Hooray! Hooray! Hooray! Yesterday I downloaded and installed QT Creator for Linux (I have both UBUNTU and Mac OS X on my laptop) and without any further struggle or headache or anything I started a project, I got the user interface window, put on a label, changed the label to say, "Hello, World!" and I compiled it. IT WORKED!! It compiled on the first try and it really made a fully functional, free standing program that runs from the Linux GUI or even from the command window. I am a happy camper. Now, I need to learn the particulars of this environment so I can go invent the next Ms Pacman or something.
Thank you all for your help and encouragement!

This article has been dead for over six months. Start a new discussion instead.