469,926 Members | 1,512 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 469,926 developers. It's quick & easy.

Portable C++ GUI framework

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?
Jun 27 '08 #1
37 3794
Ioannis Vranos wrote:
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

Jun 27 '08 #2
On Thu, 26 Jun 2008 11:18:31 +0300, Ioannis Vranos wrote:
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/

--
Lionel B
Jun 27 '08 #3
Michael Oswald wrote:
Ioannis Vranos wrote:
>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).

It isn't, I "refreshed" the newsgroup list in an attempt to find it.
Jun 27 '08 #4
On Jun 26, 10:50 am, Michael Oswald <muell...@gmx.netwrote:
Ioannis Vranos wrote:
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.
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.

--
James Kanze (GABI Software) email:ja*********@gmail.com
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
Jun 27 '08 #5
James Kanze wrote:
>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.
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
Jun 27 '08 #6

"Ioannis Vranos" <iv*****@nospam.no.spamfreemail.grwrote in message
news:g3***********@ulysses.noc.ntua.gr...
>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
Jun 27 '08 #7
Jon
On Jun 26, 3:58*am, Michael Oswald <muell...@gmx.netwrote:
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
Jun 27 '08 #8
Michael Oswald wrote:
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.
Jun 27 '08 #9
Ioannis Vranos wrote:
I think this is on topic here, because it is about C++ and available
portable C++ GUI frameworks.
There is no truly portable C++ GUI framework simply because there is no
GUI on many platforms that support C++ programming. 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.
[..]
V
--
Please remove capital 'A's when replying by e-mail
I do not respond to top-posted replies, please don't ask
Jun 27 '08 #10
R.A. Nagy wrote:
"Ioannis Vranos" <iv*****@nospam.no.spamfreemail.grwrote in message
news:g3***********@ulysses.noc.ntua.gr...
>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...

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.
Jun 27 '08 #11
Victor Bazarov wrote:
>
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.
Jun 27 '08 #12
Jon wrote:
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
Jun 27 '08 #13
Matthias Buelow wrote:
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
Jun 27 '08 #14
Ioannis Vranos wrote:
Victor Bazarov wrote:
>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?
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.

V
--
Please remove capital 'A's when replying by e-mail
I do not respond to top-posted replies, please don't ask
Jun 27 '08 #15
Victor Bazarov wrote:
Ioannis Vranos wrote:
>Victor Bazarov wrote:
>>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?

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?
Jun 27 '08 #16
Michael Oswald wrote:
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.
Jun 27 '08 #17
Victor Bazarov <v.********@comAcast.netwrites:
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).
I would list the three as Windows, X11, and Mac OS X. And, if you're
supporting the latter, I'd *highly* recommend against using a portable
GUI toolkit for it. Portable kits tend to be what I call "bitmap
native". That is, they use native controls, or native-looking bitmaps,
and stop there. They get the look right, but not the "feel", and as a
result tend to be very poorly received by Mac users.

What I would suggest doing instead is using an MVC design - quite
common among GUI apps - with the model classes written in portable
C++. I'd write the views and controllers using whatever native kit is
appropriate for each platform.

sherm--

--
My blog: http://shermspace.blogspot.com
Cocoa programming in Perl: http://camelbones.sourceforge.net
Jun 27 '08 #18
Ioannis Vranos schrieb:
Victor Bazarov wrote:
>Ioannis Vranos wrote:
>>I think you do not mean something like asking about C++ portable GUI
frameworks on a Windows user forum for example. May you clarify?
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?
comp.os.ms-windows.programmer.win32
or another group in
comp.os.ms-windows.programmer.*

--
Thomas
Jun 27 '08 #19
Thomas J. Gritzan wrote:
Ioannis Vranos schrieb:
>Victor Bazarov wrote:
>>Ioannis Vranos wrote:
I think you do not mean something like asking about C++ portable GUI
frameworks on a Windows user forum for example. May you clarify?
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?

comp.os.ms-windows.programmer.win32

I suppose this is for the C Win32 API.

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

comp.os.ms-windows.programmer looks suitable enough. But it appears
abandoned.
Jun 27 '08 #20
Ioannis Vranos wrote:
Thomas J. Gritzan wrote:
>Ioannis Vranos schrieb:
>>Victor Bazarov wrote:
Ioannis Vranos wrote:
I think you do not mean something like asking about C++ portable GUI
frameworks on a Windows user forum for example. May you clarify?
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?
comp.os.ms-windows.programmer.win32


I suppose this is for the C Win32 API.

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


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

I posted to some Usenet programming groups.
Jun 27 '08 #21

"Ioannis Vranos" <iv*****@nospam.no.spamfreemail.grwrote in message
news:g4***********@ulysses.noc.ntua.gr...
Thomas J. Gritzan wrote:
>Ioannis Vranos schrieb:
>>Victor Bazarov wrote:
Ioannis Vranos wrote:
I think you do not mean something like asking about C++ portable GUI
frameworks on a Windows user forum for example. May you clarify?
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?

comp.os.ms-windows.programmer.win32


I suppose this is for the C Win32 API.

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


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

comp.os.ms-windows.programmer.win32

Jun 27 '08 #22
Ioannis Vranos wrote:
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
Jun 27 '08 #23
>
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
Jun 27 '08 #24
>
What I would suggest doing instead is using an MVC design - quite
common among GUI apps - with the model classes written in portable
C++. I'd write the views and controllers using whatever native kit is
appropriate for each platform.
Anyone have any success stories on writing universally portable C++ GUI for
the "big 3"? (Mac, Win32, POSIX?)

((Lots of games use C++ to pwine the MAC / WIN32 GUI target ...))

Here again, why not leverage Java UI components for a baseline... They go
everywhere. JNI could make it work over / under C -C++ ...

..01 ends ;)

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

Jun 27 '08 #25
I have had some experience with wxWidgets.

Didja ever get a chance to test it all on WIN32, Linux, and OS X?

Thanks,

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

Jun 27 '08 #26
Matthias Buelow <mk*@incubus.dewrites:
Sherman Pendley wrote:
>Yes, it uses native widgets. It's got the "look" pretty close. But a
native interface, at least on the Mac, is more than that.

Enough of that Mac snobbery! If you think people are gonna rewrite
everything just for the Mac because you don't quite like a shade of an
icon you can eat your one-button mouse. :-)
LOL!
Seriously, for many applications cross-platform toolkits are a nice
thing and a Mac user surely prefers a "close enough" GUI to one that
hasn't been ported to the Mac at all.
They're a picky audience. They'll use a "close enough" GUI if nothing
else is available. But, if there's an alternative that *does* follow
the Mac Human Interface Guidelines, you'll need to do likewise to have
any real hope of competing with it.

sherm--

--
My blog: http://shermspace.blogspot.com
Cocoa programming in Perl: http://camelbones.sourceforge.net
Jun 27 '08 #27
On Jun 27, 2:07 pm, Matthias Buelow <m...@incubus.dewrote:
James Kanze wrote:
My own (admittedly limited) contact with wxWidgets
... (I refuse to use anything
which uses a pre-processor to C++, requiring me to write in
another language, and I definitely don't like anything which
takes over main for me.)
You mean Qt? WxWidgets doesn't use a preprocessor (well,
apart from cpp, of course.)
Yes. Sorry I wasn't clear about that. When I decided to give
things a look, there were two widely used GUI frameworks: Qt and
wxWidgets. I decided to not even bother downloading Qt because
of the preprocessor. I did give wxWidgets a very quick try, but
wasn't happy because it took over main(). Then I didn't have
time to go any further (e.g. to see if there were alternative
ways of using it), so I don't like to sound too negative.

--
James Kanze (GABI Software) email:ja*********@gmail.com
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
Jun 27 '08 #28
On Jun 27, 4:13 pm, "Alf P. Steinbach" <al...@start.nowrote:
* James Kanze:
On Jun 26, 11:58 am, Michael Oswald <muell...@gmx.netwrote:
James Kanze wrote:
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.
I said more popular, not cleaner:-). I'm not familiar with
other GUI frameworks, and I don't really know the original
poster's needs or desires, so I didn't want to say more. My own
(admittedly limited) contact with wxWidgets left a negative
taste in my mouth---possibly because it was a complete
framework, and not just a library. (I refuse to use anything
which uses a pre-processor to C++, requiring me to write in
another language, and I definitely don't like anything which
takes over main for me.)
I think you're thinking of QT (from Norwegian Troll, he he),
not wxWidgets.
I think I'm not expressing clearly what I'm thinking:-). The
comments concerning the pre-processor do concern Qt, and were
meant to explain why I only looked at Wx.

[...]
wxWidgets is not based on preprocessing, and it doesn't take
over main.
First, I want to be very clear: I don't really know it. I
downloaded it with the intent of learning it. The first example
or so in the tutorial did take over main, in some way or another
(I forget the details), and I was then interrupted by my real
work (which doesn't use GUI's), and haven't had time to get back
to it. So all I have is a rather negative first impression, but
for things as complicated as a GUI framework, one really
shouldn't stick with first impressions.
[James:]
And Java's Swing isn't that bad, and doesn't use any of those
solutions. What's wrong with the classical event notification
pattern?
"isn't that bad", hey, it's awful! Looks bad, slow, eats
resources. :-)
It's nicely designed. Back when I was using it, everything in
Java was slow, and since it tended to reimplement all of the
drawing, rather than using native code, it was slow (but not
outrageously so). And whether it looks good or not depends on
whose programming it: you can create ugly and inefficient GUI's
with any tool kit. (Most of what makes a GUI beautiful or ugly
is situated at a level above the tool kit.) It provides the
tools to support well designed GUI's, if that's what you want.

And of course, given my background, I especially liked the fact
that I could have a Motif look and feel:-).

--
James Kanze (GABI Software) email:ja*********@gmail.com
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
Jun 27 '08 #29
>
Apple's Human Interface Guidelines (the HIG I mentioned earlier)
should, IMHO, be required reading for anyone contemplating a Mac port
of their app.

<http://developer.apple.com/documentation/UserExperience/Conceptual/AppleHIGuidelines/>
Link is priceless.

Thanks!

R.A. Nagy
http://Soft9000.com
Jun 27 '08 #30
James Kanze wrote:
>
I think I'm not expressing clearly what I'm thinking:-). The
comments concerning the pre-processor do concern Qt, and were
meant to explain why I only looked at Wx.

*What does QT do with the preprocessor*? I am a concerned because this
is the framework I decided that I will probably learn to use, because of
its support and documentation (books).
The book I have in mind:

[C++ GUI Programming with Qt 4 (2nd Edition)]:
http://trolltech.com/developer/books...-4-2nd-edition

All the books they suggest:

http://trolltech.com/developer/books/
Jun 28 '08 #31
On Sat, 28 Jun 2008 14:33:56 +0300, Ioannis Vranos wrote:
James Kanze wrote:

I think I'm not expressing clearly what I'm thinking:-). The
comments concerning the pre-processor do concern Qt, and were
meant to explain why I only looked at Wx.


*What does QT do with the preprocessor*? I am a concerned because this
is the framework I decided that I will probably learn to use, because of
its support and documentation (books).
For the most part, the preprocessor is required to get signals/slots working
for your own classes derived from QObject (the Qt-base class for everything
that can have signals/slots). Essentially it checks for the macro Q_OBJECT
in your class declaration and creates special code for signals and slots. As
long as you only use Qt's classes, you won't need it. There are other uses
of the preprocessor (e.g. Qt-plugins), but you'll probably never need those.

I dislike non-compiler-internal preprocessors almost as much as James, but
the Qt one isn't nearly as bad as some of the ones I've come across (e.g.
Oracle's some yours back). I haven't seen it choke on valid C++ code (at least
not current incarnations), the biggest pain using it is trying to integrate
it into MSVC (don't ask...) because we haven't found a way to automatically
run it à la make-patterns, so we have to define the extra build stage by
hand each time; that's really a MSVC shortcoming, though. The biggest
limitations I'm aware of are that you can't define new signals/slots in a
template class or a subclass (more on that below).

I often wished they'd implemented signals/slots properly within the language,
but ultimately the good easily outweighs the bad IMHO. If you're really unhappy
about the preprocessor, you can always create your own library of intermediate
classes where you define stubs slots as virtual functions, then you have to use
the processor in that library only and everything else can just overload these
functions and forget about the preprocessor (I've done that for some frequenty
used widgets, works fine). That way you can also overcome the two limitations
I mentioned above.

The book I have in mind:

[C++ GUI Programming with Qt 4 (2nd Edition)]:
http://trolltech.com/developer/books...-4-2nd-edition
I think that's the one a colleague of mine had a look at before we started
porting a 3 million LOC project from Qt3 to Qt4. He wasn't that impressed
(could have been another book, though). The best way to learn it is probably
simply checking their examples (there are a lot of them) and getting your coding-
fingers dirty

Andreas
--
Dr. Andreas Dehmel Ceterum censeo
FLIPME(ed.enilno-t@nouqraz) Microsoft esse delendam
http://www.zarquon.homepage.t-online.de (Cato the Much Younger)

Jun 28 '08 #32
I have ordered "C++ GUI Programming with Qt 4 (2nd Edition)" and hope
for the best.
Jun 29 '08 #33
On 29 Jun., 16:38, Ioannis Vranos <ivra...@nospam.no.spamfreemail.gr>
wrote:
I have ordered "C++ GUI Programming with Qt 4 (2nd Edition)" and hope
for the best.
It is quite OK as a beginners Guide, though not much more.
Besides there are always the great Documentation pages at
http://doc.trolltech.com/4.4/index.html. The Tutorials get you
started very fast, and I haven't found anything that I couldn't
gasp from the articles under "Core Features" or "Key Technologies".
All in all Qt's Online Doc belongs to the best Tech Docs I ever
used.

And even though I don't like the preprocessing either, it just works,
and even helps to cut some dependencies.
The rest of Qt's design decisions are sound, and the API is very clean
and unsurprising.

HTH

Fabio

Jun 30 '08 #34
On 27 Jun., 21:37, James Kanze <james.ka...@gmail.comwrote:
[...]
>*And whether it looks good or not depends on
whose programming it: you can create ugly and inefficient GUI's
with any tool kit. *(Most of what makes a GUI beautiful or ugly
is situated at a level above the tool kit.) *It provides the
tools to support well designed GUI's, if that's what you want.
While it is certainly true that you can create ugly GUI's in any
tool kit, some make it much easier than others. In Qt for example
your application is as ugly or beautiful as the rest of your
(or your users) desktop, by default, since it automatically integrates
with the native style. Of course you can use theming to create other
styles.
>
And of course, given my background, I especially liked the fact
that I could have a Motif look and feel:-).
Qt also comes with a Motif Theme if that is what you call not ugly ;)

Regards

Fabio


Jun 30 '08 #35
For the most part, the preprocessor is required to get signals/slots
working
for your own classes derived from QObject
....which could have been made entirely using standart C++ technique, IF one
knows how to program.

Jun 30 '08 #36
f.********@gmx.net writes:
While it is certainly true that you can create ugly GUI's in any
tool kit, some make it much easier than others. In Qt for example
your application is as ugly or beautiful as the rest of your
(or your users) desktop, by default, since it automatically integrates
with the native style.
That's not been my experience with it. Individual controls are
rendered in the native style, but it leaves a lot of other "high
level" issues (where to place the controls, what menu items are
expected to be present, etc.) up to the developer.

That's not meant as criticism of the Qt developers, btw. I don't see
any reasonable way that such things could be entirely automatic. It's
TrollTech's marketing that's deserving of criticism, for making such
unrealistic claims about zero-effort porting.

sherm--

--
My blog: http://shermspace.blogspot.com
Cocoa programming in Perl: http://camelbones.sourceforge.net
Jun 30 '08 #37
pj*@informatimago.com (Pascal J. Bourguignon) writes:
You can't deny the marketting genius of Steve Jobs and his followers.
Sorry, but I can't let this go. I happen to own and use a Mac, but I'm
neither a "Mac guy" nor a blind follower of *anyone*. Your comment is
nothing but ignorant stereotyping, and I resent it.

sherm--

--
My blog: http://shermspace.blogspot.com
Cocoa programming in Perl: http://camelbones.sourceforge.net
Jun 30 '08 #38

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

4 posts views Thread by simonc | last post: by
2 posts views Thread by Tull Clancey | last post: by
131 posts views Thread by pemo | last post: by
6 posts views Thread by Abubakar | last post: by
1 post views Thread by John A. Bailo | last post: by
3 posts views Thread by The Magpie | last post: by
13 posts views Thread by Tomás | last post: by
5 posts views Thread by Richard Giuly | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.