Portable C++ GUI framework

I

Ioannis Vranos

I think this is on topic here, because it is about C++ and available
portable C++ GUI frameworks.


I am looking for a decent portable C++ (meaning C++ API, not C) GUI
framework that works both on Linux and Windows, so as to study and learn
it. That is, there should be at least one good decent book about it.


One option is QT. QT licensing however, is to pay for the QT framework,
for running non GPL applications on Windows.

Does anyone know any decent (like QT) portable C++ GUI framework for
Linux and Windows with good documentation (books) available?
 
M

Michael Oswald

Ioannis said:
I think this is on topic here, because it is about C++ and available
portable C++ GUI frameworks.


I am looking for a decent portable C++ (meaning C++ API, not C) GUI
framework that works both on Linux and Windows, so as to study and learn
it. That is, there should be at least one good decent book about it.


One option is QT. QT licensing however, is to pay for the QT framework,
for running non GPL applications on Windows.

Does anyone know any decent (like QT) portable C++ GUI framework for
Linux and Windows with good documentation (books) available?

I think it's still off-topic here, because this has only little to do
with the language itself. The new comp.lang.c++.misc group might be
better (if it's already available at your news server).


Nevertheless: e.g. GTKmm, wxWidgets

Though, I think there is no book on GTKmm (the C++ library
http://www.gtkmm.org) but only on GTK (the C Library). GTK is really
widely used (e.g. Firefox under Linux or Adobe Acrobat under Linux, GIMP
on Windows and Linux etc).

wxWidgets is ported to many OS's and architectures
(http://www.wxwidgets.org). The IDE Code::Blocks uses it for Windows and
Linux for example.


hth,
Michael
 
L

Lionel B

I think this is on topic here, because it is about C++ and available
portable C++ GUI frameworks.


I am looking for a decent portable C++ (meaning C++ API, not C) GUI
framework that works both on Linux and Windows, so as to study and learn
it. That is, there should be at least one good decent book about it.


One option is QT. QT licensing however, is to pay for the QT framework,
for running non GPL applications on Windows.

Does anyone know any decent (like QT) portable C++ GUI framework for
Linux and Windows with good documentation (books) available?

http://www.wxwidgets.org/
http://www.fltk.org/
http://www.gtkmm.org/
 
I

Ioannis Vranos

Michael said:
I think it's still off-topic here, because this has only little to do
with the language itself. The new comp.lang.c++.misc group might be
better (if it's already available at your news server).


It isn't, I "refreshed" the newsgroup list in an attempt to find it.
 
J

James Kanze

I think it's still off-topic here, because this has only
little to do with the language itself.

I don't see anything that would make it off-topic here, since it
is about C++ in general, and not specific to a given platform.
(Once he's chosen a framework, questions about that framework
are probably best asked in a group or mailing list specialized
in the framework. If only because that's where he's most likely
to find the people who know it well.)
The new comp.lang.c++.misc group might be better (if it's
already available at your news server).

I've yet to figure out the purpose of that group, since I can't
see any question appropriate to it which wouldn't be appropriate
here.
Nevertheless: e.g. GTKmm, wxWidgets
Though, I think there is no book on GTKmm (the C++
libraryhttp://www.gtkmm.org) but only on GTK (the C Library).
GTK is really widely used (e.g. Firefox under Linux or Adobe
Acrobat under Linux, GIMP on Windows and Linux etc).

wxWidgets is ported to many OS's and architectures
(http://www.wxwidgets.org). The IDE Code::Blocks uses it for
Windows and Linux for example.

From what little I've seen, wxWidgets seems to be one of the
more popular frameworks.
 
M

Michael Oswald

James said:
I've yet to figure out the purpose of that group, since I can't
see any question appropriate to it which wouldn't be appropriate
here.

I don't know. At least it seems, that some things, which would be
off-topic here would be more on-topic there. Though I could imagine,
that there would be better support in more specific groups.

From what little I've seen, wxWidgets seems to be one of the
more popular frameworks.

Yup. But to me the C++ API of GTKmm is a lot cleaner. For Example,
wxWidgets uses some sort of macro processing for coupling of widgets
with callbacks (which somehow reminds me on MFC), whereas GTKmm uses
signals (like libsigc++ or boost::signal).


lg,
Michael
 
R

R.A. Nagy

Ioannis Vranos said:
I think this is on topic here, because it is about C++ and available
portable C++ GUI frameworks.


I am looking for a decent portable C++ (meaning C++ API, not C) GUI
framework that works both on Linux and Windows, so as to study and learn
it. That is, there should be at least one good decent book about it.


One option is QT. QT licensing however, is to pay for the QT framework,
for running non GPL applications on Windows.

Does anyone know any decent (like QT) portable C++ GUI framework for
Linux and Windows with good documentation (books) available?

Cross-Platform GUI frameworks are great, but does anyone have as good of a
UI designer / toolset as C++Builder? (This is not a rhetorical question - I
would sincerely like to know!) I have been waiting for the Java camp to
catch up with Borland for decades...

As for the Borland / CodeGear cross platform C++ offering, the CLX widget
set seamlessly ports to both Linux and WIN32. (Kylix is the version to look
for on Linux... I will get my license to the most recent version of the
product next week - I can let everyone know if the cross platform is as good
as it was a few years back if there is any interest.)

R.A. Nagy
http://www.SaintBook.org
 
J

Jon

Yup. But to me the C++ API of GTKmm is a lot cleaner. For Example,
wxWidgets uses some sort of macro processing for coupling of widgets
with callbacks (which somehow reminds me on MFC), whereas GTKmm uses
signals (like libsigc++ or boost::signal).


I have had some experience with wxWidgets. wxWidgets event handler IS
quite similar to that used by MFC. I believe that they both use
tables that map event identifiers to member function pointers. The
macros merely serve to build up static versions of these tables and to
hide the not insignificant complexity of building them up. wxWidgets
also implements what are called "pluggable" event handlers which allow
you to construct the event handler tables for an object at run time
and is actually quite clean. The strangest thing about the whole
event handling system is the use of member function pointers which
bypass the type system when the bound functions happen to be declared
virtual leading to occasionally unexpected results.

Regards,

Jon Trauntvein
 
M

Matthias Buelow

Michael said:
Yup. But to me the C++ API of GTKmm is a lot cleaner. For Example,
wxWidgets uses some sort of macro processing for coupling of widgets
with callbacks (which somehow reminds me on MFC), whereas GTKmm uses
signals (like libsigc++ or boost::signal).

Using macros is only one of two methods, the other is connecting event
handlers programmatically with an event handler (for example, a window).

GTKmm is, well, GTK. Probably not of much use outside of the X11
universe, especially if you have users expecting your application to
look&work like a native one. WxWidgets uses native widgets where applicable.
 
I

Ioannis Vranos

R.A. Nagy said:
Cross-Platform GUI frameworks are great, but does anyone have as good of a
UI designer / toolset as C++Builder? (This is not a rhetorical question - I
would sincerely like to know!) I have been waiting for the Java camp to
catch up with Borland for decades...


From a quick look, QT4 on Linux has a decent designer. Not like C++
Builder on Windows of course.

As for the Borland / CodeGear cross platform C++ offering, the CLX widget
set seamlessly ports to both Linux and WIN32. (Kylix is the version to look
for on Linux... I will get my license to the most recent version of the
product next week - I can let everyone know if the cross platform is as good
as it was a few years back if there is any interest.)


Those are old stuff. As in my case, I suggest you check out QT first. It
is free for open source apps.
 
I

Ioannis Vranos

Victor said:
While you received
some good answers describing the existing *cross-platform* GUI toolkits
(there seems to be about four of them), I would strongly recommend
asking in the newsgroups for the platforms to which you want to port
your application. It is very likely there are only three platforms that
you're interested in (Windows, Unix, Linux), maybe four (add MacOS). So,
pick one of the toolkits and post your questions about it to the online
forum it already undoubtedly has. You would get much more useful
information there than here.


I think you do not mean something like asking about C++ portable GUI
frameworks on a Windows user forum for example. May you clarify?

Thanks.
 
M

Michael Oswald

Jon said:
wxWidgets
also implements what are called "pluggable" event handlers which allow
you to construct the event handler tables for an object at run time
and is actually quite clean.

Ah, didn't know that. Well, I personally haven't used wxWidgets, just
had to debug some code with it.
The strangest thing about the whole
event handling system is the use of member function pointers which
bypass the type system when the bound functions happen to be declared
virtual leading to occasionally unexpected results.

Good to know.
I have to use mostly the commercial ILOG Views which uses the old system
of pointers to extern C declared functions which then redirect to a
member call which is not really not better at all.



lg,
Michael
 
M

Michael Oswald

Matthias said:
Using macros is only one of two methods, the other is connecting event
handlers programmatically with an event handler (for example, a window).

Yup, as said in another post, I didn't know that.
GTKmm is, well, GTK. Probably not of much use outside of the X11
universe, especially if you have users expecting your application to
look&work like a native one. WxWidgets uses native widgets where applicable.

That's quite right. I work most of the time under Linux/Unix, so this is
not an issue for me, but of course for the OP.

Another point is the GUI builder tools. Compared with QT's designer or
ILOGs Studio, GTK-GLADE is somehow poor. Don't know, if there is
something comparable available for wxWidgets, with exception of the
wxSmith plugin for Code::Blocks.


lg,
Michael
 
I

Ioannis Vranos

Victor said:
I can clarify, I think. Ask not in the Windows *user* forum, but ask in
the Windows *programming* forum. Or in the Linux *programming* forum.


Is there any Windows programming forum not dedicated on any specific
product, like VC++, Borland C++, VC#, etc?
 
M

Matthias Buelow

Michael said:
Another point is the GUI builder tools. Compared with QT's designer or
ILOGs Studio, GTK-GLADE is somehow poor. Don't know, if there is
something comparable available for wxWidgets, with exception of the
wxSmith plugin for Code::Blocks.

Dialogblocks, but it's payware (free trial version available, tho). It
isn't entirely bad.
 
T

Thomas J. Gritzan

Ioannis said:
Is there any Windows programming forum not dedicated on any specific
product, like VC++, Borland C++, VC#, etc?

comp.os.ms-windows.programmer.win32
or another group in
comp.os.ms-windows.programmer.*
 
I

Ioannis Vranos

Ioannis said:
I suppose this is for the C Win32 API.




comp.os.ms-windows.programmer looks suitable enough. But it appears
abandoned.


I posted to some Usenet programming groups.
 
N

Noah Roberts

Ioannis said:
I think this is on topic here, because it is about C++ and available
portable C++ GUI frameworks.


I am looking for a decent portable C++ (meaning C++ API, not C) GUI
framework that works both on Linux and Windows, so as to study and learn
it. That is, there should be at least one good decent book about it.


One option is QT. QT licensing however, is to pay for the QT framework,
for running non GPL applications on Windows.

Does anyone know any decent (like QT) portable C++ GUI framework for
Linux and Windows with good documentation (books) available?

wxWidgets
 
R

R.A. Nagy

From a quick look, QT4 on Linux has a decent designer. Not like C++
Builder on Windows of course.

I've used the QT designer. Worked okay, but I agree: It was stone tools and
axes when compared to even C++Builder 5 / 6. (Still looking forward to
testing the new CodeGear stuff - The free copy of Studio 2006 still sits on
my shelf in shrink wrap - just do not have the time to play with the new
toys... 'specially when they fail to reload their old project formats -
(gotta love outsourcing to newbies - but you go you exeCUTive
quality-cutters, go! :))

But enough of my carping -

I liked the Qt signal / slot paradigm, but when I went to QT4 the need to
#ifdef everything to get "old code" to work left me cold. Better an new
namespace than breaking those public "contracts" ... !

Oh well, I hope Nokia will have better luck keeping the Qt Namespace from
doing that EVER again... IMO that was a sure sign of poor educational
choices!
< (fingers crossed)

Of course NetBeans has a decent GUI designer for Java. Mayhaps they will
extend it as their newfound support for C++ evolves? Even a JNI scaffolding
to support AWT under C++ would be welcome: An instant cross-platform
minimalist GUI for C++!

(Are you listening, Sun??)

Same thing for DevC++; The add-on library support is impressive, but a cool
cross platform UI designer would be hot++.


R.A. Nagy
http://www.Soft9000.com
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,994
Messages
2,570,223
Members
46,813
Latest member
lawrwtwinkle111

Latest Threads

Top